"’", " " => "~", "»" => "»", "«" => "«", "”" => "”", "“" => "“", "°" => "°" ); $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', ',(http|https|ftp|mailto)~((://[^"\'\s\[\]\}\)<>]+)~([?]))?,S', '/~/' ); $remplace2 = array( '\1—\2', '\1\3\4', ' ' ); $letexte = preg_replace($cherche2, $remplace2, $letexte); return $letexte; }