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
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,"\"é\"");
?>
Une petite avancée: si je reprend les ancienne fonction erigi mais depréciée maintenant cela fonctionne.
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