'’', ' ' => '~', '»' => '»', '«' => '«', '”' => '”', '“' => '“', '°' => '°' ); $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; }