mirror of
https://github.com/YunoHost-Apps/spip_ynh.git
synced 2024-09-03 20:25:59 +02:00
73 lines
2.3 KiB
PHP
73 lines
2.3 KiB
PHP
<?php
|
|
|
|
/***************************************************************************\
|
|
* SPIP, Systeme de publication pour l'internet *
|
|
* *
|
|
* Copyright (c) 2001-2014 *
|
|
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
|
|
* *
|
|
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
|
|
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
|
|
\***************************************************************************/
|
|
|
|
if (!defined('_ECRIRE_INC_VERSION')) return;
|
|
|
|
// Correction typographique francaise
|
|
|
|
function typographie_fr_dist($letexte) {
|
|
|
|
static $trans;
|
|
|
|
// Nettoyer 160 = nbsp ; 187 = raquo ; 171 = laquo ; 176 = deg ;
|
|
// 147 = ldquo; 148 = rdquo; ' = zouli apostrophe
|
|
if (!$trans) {
|
|
$trans = array(
|
|
"'" => "’",
|
|
" " => "~",
|
|
"»" => "»",
|
|
"«" => "«",
|
|
"”" => "”",
|
|
"“" => "“",
|
|
"°" => "°"
|
|
);
|
|
$chars = array(160 => '~', 187 => '»', 171 => '«', 148 => '”', 147 => '“', 176 => '°');
|
|
$chars_trans = array_keys($chars);
|
|
$chars = array_values($chars);
|
|
$chars_trans = implode(' ',array_map('chr',$chars_trans));
|
|
$chars_trans = unicode2charset(charset2unicode($chars_trans, 'iso-8859-1', 'forcer'));
|
|
$chars_trans = explode(" ",$chars_trans);
|
|
foreach($chars as $k=>$r)
|
|
$trans[$chars_trans[$k]] = $r;
|
|
}
|
|
|
|
$letexte = strtr($letexte, $trans);
|
|
|
|
$cherche1 = array(
|
|
/* 1 */ '/((?:^|[^\#0-9a-zA-Z\&])[\#0-9a-zA-Z]*)\;/S',
|
|
/* 2 */ '/»| --?,|(?::(?!:)| %)(?:\W|$)/S',
|
|
/* 3 */ '/([^[<(!?.])([!?][!?\.]*)/iS',
|
|
/* 4 */ '/«|(?:M(?:M?\.|mes?|r\.?)|[MnN]°) /S'
|
|
);
|
|
$remplace1 = array(
|
|
/* 1 */ '\1~;',
|
|
/* 2 */ '~\0',
|
|
/* 3 */ '\1~\2',
|
|
/* 4 */ '\0~'
|
|
);
|
|
$letexte = preg_replace($cherche1, $remplace1, $letexte);
|
|
$letexte = preg_replace("/ *~+ */S", "~", $letexte);
|
|
|
|
$cherche2 = array(
|
|
'/([^-\n]|^)--([^-]|$)/S',
|
|
',(' ._PROTOCOLES_STD . ')~((://[^"\'\s\[\]\}\)<>]+)~([?]))?,S',
|
|
'/~/'
|
|
);
|
|
$remplace2 = array(
|
|
'\1—\2',
|
|
'\1\3\4',
|
|
' '
|
|
);
|
|
$letexte = preg_replace($cherche2, $remplace2, $letexte);
|
|
|
|
return $letexte;
|
|
}
|