[php] aide pr expression réguliére->marche pô

Fermé
blbg Messages postés 302 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 22 novembre 2007 - 6 mai 2004 à 17:10
blbg Messages postés 302 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 22 novembre 2007 - 6 mai 2004 à 18:49
bonjour, ...

voilà mon petit probléme :

j'ai une chaine (aprés l'avoir lue ds un fichier texte) contenant des instructions php d'affectation!

leur format est donc :
$nomVar = 'valeur_var'; 

& je voudrais récupérer le nom & la valeur de la variable, ...
j'ai donc utilisé les expression réguliére, j'ai suivi le cour ccm, mais ça marche pas, ... ça ne me retourne rien ...

voilà ce que j'utilise :
echo '<b>'.$buffer.'</b><br>'; // buffer est la chaine de départ

eregi("^\$([:alnum:]*) *= *'$",$buffer,$nomVar);
// commence par $
// suite de caractére alphanum
// 0 ou 1 espace (j'ai mis * pr que même s'il y a plus qu'un espace ça marche)
// un =
// la encore 0 ou 1 espace 
// fini par   '  qui marque le début de la valeur

echo $nomVar[0].'<br>'.$nomVar[1].'<br>'.$nomVar[2]; //affiche pour test

eregi("^ *= *'(.*)[^\\]';$",$buffer,$valVar);
//commence par les espace 
// puis le = 
// encore les espace 
// ' pr la chaine
// une suite de caractére
// puis fini par '; mais il ne doit pas avoir de \ avant le ';
echo '<br>'.$valVar[0].'<br>'.$valVar[1].'<br>'.$valVar[2];//affiche pour test


& qd je teste ça, ... ça m'affiche le $buffer, ainsi que les <br>
mais je ne récupére rien ...

& je ne vois pas où ça bloc, ...
car si on détaille bien mon buffer, ... ça corespond, ... non ??

& j'ai aussi voulu remplacer les ' par ['|"] , mais ça m'affiche une erreur, car il ferme le chaine avec le " & je ne sais pas si je met \" si l'expression va bien être interpréter ...

dc si qqun peu m'aiguiller ... merci

1 réponse

blbg Messages postés 302 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 22 novembre 2007 10
6 mai 2004 à 18:49
j'ai trouvé, ...

enfin, j'ai contourné le probléme, ...

	$dn = strpos($buffer,"$");
	$fn = strpos(substr($buffer,$dn)," ");
	$nomVar = substr($buffer,$dn+1,$fn-$dn-1);

	$buffer=substr($buffer,$fn);
	$dv = strpos($buffer,"'");
	$df = strrpos($buffer,"'");
	$valVar = substr($buffer,$dv+1,$df-$dv-1);

$nomVar contient bien le nom de la variable,
et $valVar sa valeur, ...

voilà, ... il me rete plus qu'à recreer la variable
0