Bonjour,
Je tourne en rond sur un mb_eregi pour isoler les éléments d'une string qui sont entre cote.
C'est bizarre sur sur la chaine "e" la règle \"([^\"]*)\" marche alors que sur la chaine "é" cela ne marche plus. Je ne comprend pas bien pourquoi.
Merci de votre aide si vous avez une explication ou une alternative à la règle que j'utilise qui me semble très simple.
Voici un petit code de test de ce comportement
Une petite avancée: si je reprend les ancienne fonction erigi mais depréciée maintenant cela fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <?php function chercheEntreCote($regle,$string){ echo "mb_eregi(\"".addslashes($regle)."\",$string\",\$reg)"; if (mb_eregi($regle,$string,$reg)){ echo (" trouve"); echo "<PRE>";print_r($reg);echo "</PRE>"; } else { echo (" ne trouve pas"); } } $regle="\"([^\"]*)\""; chercheEntreCote($regle,"\"e\""); chercheEntreCote($regle,"\"é\""); ?>
de plus si j'utilise mb_detect_encoding sur "e" je trouve ASCII et sur "é" UTF-8 encore ces problème d'encodage sans doute
Partager