REGEX

Eléphant du PHP | 114 Messages

01 oct. 2006, 17:57

Bonjour a tous,

Je cherche a exploiter la source d'une page , c'est a dire recuperer des donnée grace a une REGEX.

par exemple la page contient : ( var num = 5;var bla ) et moi j'aimerai recuperai le 5

J'ai fait ceci :
$source = @file_get_contents("http://blab.com/blabla.php");

	eregi("num =(.*);var bla", $source, $sortie);
	
 echo $sortie[1];
Le probleme c'est que ca ne marche pas, des que j'enleve le ; ca marche mais ca me renvoi 5;

Comment faire pour recuperer uniquement le 5 svp....

Eléphant du PHP | 135 Messages

01 oct. 2006, 18:33

Bonjour :)

Si je peux me permettre, pourrait-on en savoir un peu plus sur ce que tu veux faire?

peut être y a-til une solution plus pratique ? :)

Eléphant du PHP | 114 Messages

01 oct. 2006, 18:38

Je ne peut malheuresement pas trop donner de detail. Mais en fait le site en projet permettra a un utilisateur de rentrer son site, le genre de site que proposera l'utilisateur comprend forcement des variable en javascript que je souhaite detecter afin de pouvoir faciliter l'inscription :

exemple :

var bla = "blaabla";
var test = 5;
[...]

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

01 oct. 2006, 19:49

Je vois pas trop ce qui ne va pas... le code suivant :
$source="num =5;var bla";
eregi("num =(.*);var bla", $source, $sortie);

echo $sortie[1];
Affiche bien le 5, sans erreur et sans point-virgule...

Donc soit l'exemple n'est pas représentatif de ce que tu veux faire, soit on a pas tous les éléments... Est-ce que le monsieur qui t'a posé un pistolet sur la tempe pour t'empêcher de nous dévoiler des informations vitales et ultra-confidentielles que l'on pourrait vouloir revendre à un pays ennemi de la France qui l'utiliserait pour nuire à la sécurité du territoire, t'autoriserais à nous en dire un peu plus ? :P

Eléphant du PHP | 114 Messages

01 oct. 2006, 20:15

Le probleme c'est qu apres le point virgule, il y'a un retour a la ligne. Et je constate que c'est ce retour a la ligne qu'il faudrait interpreter. J'ai penser a un retour chariot mais cela n'a pas l'ai de fonctionner...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

01 oct. 2006, 22:46

ah ben forcément, avec un retour charriot l'expression n'est plus valide...
Tu peux essayer de coller un \r\n ou un \n selon la nature du retour (je ne sais pas trop si cela fonctionne avec les regexp). Tu peux aussi mettre un (.*) ou autre à la place pour que la chaine soit respectée ou bien encore remplacer les retours charriots dans la chaine avant la recherche. Enfin plus simplement, tu peux aussi arrêter l'expression au point-virgule :)