diff --git a/ecrire/lab_ortho.php b/ecrire/lab_ortho.php index 759156f12e0212d1608cff1b2e94f6d1d7f0d7d4..07c547e1c49853d7aa214ab1bcded036504ec3a3 100644 --- a/ecrire/lab_ortho.php +++ b/ecrire/lab_ortho.php @@ -79,7 +79,7 @@ function lire_miroirs_ortho() { } } lire_metas(); - srand(time()); + mt_srand(time()); } // Sauvegarder les infos de langues pour le miroir @@ -139,7 +139,7 @@ function choisir_miroirs_ortho($lang) { $liste = chercher_miroirs_ortho($lang); if (!count($liste)) return false; foreach ($liste as $url) { - $miroirs[md5(rand().$url)] = $url; + $miroirs[md5(mt_rand().$url.rand())] = $url; } ksort($miroirs); return $miroirs; @@ -403,12 +403,8 @@ function corriger_ortho($texte, $lang, $charset = 'AUTO') { } else { // Ici bidouilles si PCRE en mode UTF-8 ne fonctionne pas correctement ... - // Guillemets francais (plage iso-latin) - $trans = array(chr(194).chr(171) => ' ', chr(194).chr(187) => ' '); - $texte = strtr($texte, $trans); - // Saloperies non-conformes - $trans = array(chr(194).chr(133) => ' ', chr(194).chr(150) => ' ', chr(194).chr(151) => ' '); - $texte = strtr($texte, $trans); + // Caracteres non-alphanumeriques de la plage latin-1 + saloperies non-conformes + $texte = preg_replace(',\xC2[\x80-\xBF],', ' ', $texte); // Poncutation etendue (unicode) $texte = preg_replace(",".plage_punct_unicode().",", ' ', $texte); // Caracteres ASCII non-alphanumeriques @@ -450,7 +446,7 @@ function corriger_ortho($texte, $lang, $charset = 'AUTO') { // POST de la requete et recuperation du resultat XML $urls = choisir_miroirs_ortho($lang); if (!$urls) return false; - $ok = ''; + unset($ok); $erreur = false; foreach ($urls as $url) { $xml = post_ortho($url, $texte_envoi, $lang); @@ -458,13 +454,14 @@ function corriger_ortho($texte, $lang, $charset = 'AUTO') { $xml = $r[1]; if (preg_match(',<erreur>.*<code>(.*)</code>.*</erreur>,s', $xml, $r)) $erreur = $r[1]; - if (preg_match(',<ok>(.*)</ok>,s', $xml, $r)) + if (preg_match(',<ok>(.*)</ok>,s', $xml, $r)) { $ok = $r[1]; - if ($ok) break; + break; + } } reset_miroir($url); } - if (!$ok) return $erreur; + if (!isset($ok)) return $erreur; // Remplir le tableau des resultats (mots mal orthographies) if ($trans_rev) {