Page 1 sur 1

fonction preg_match_all

Posté : 13 avr. 2009, 22:13
par energie13
bonjour
en fait j'ai mon code source
partie 1
partie 2 à récupérer
partie 3

Partie 2 est un tableau et je dois convertir chaque valeur dans des variables...

J'arrive bien à récupérer le code source. Mais je n'arrive pas a trouver la bonne syntaxe pour supprimer la partie 1 et la partie 3 du code source pour ne conserver que la partie 2 et pouvoir travailler dessus pour extraire les différentes variables du tableau.

Posté : 14 avr. 2009, 12:07
par Ryle
Il te faut définir un masque pour pouvoir identifier les éléments que tu souhaites récupérer. Ce masque doit respecter scrupuleusement tous les caractères que tu va rencontrer, incluant les espaces, retours à la ligne, les tabulations, ... et tu pourras ainsi retrouver la chaine qui t'intéresse.

Ca, c'est le principe général.

Maintenant on peut aussi essayer de le simplifier. Par exemple, capturer tout ce qui se trouve dans les cellules du tableau (<td>), et connaissant l'ordre, faire le tri de ce que tu souhaites garder ou pas :
preg_match_all("#<td>(.*)</td>#Ui", $chaine, $resultat);
Ainsi, les 5 premières cellules td étant des libellés, tu peux les passer et directement récupérer $resultat[6] à $resultat[10] ...
Nota, le pattern ci-dessus ne gère pas les cellules qui contiennent un colspan ou autre attribut html, mais tu peux facilement les inclure :)

Posté : 14 avr. 2009, 14:30
par energie13
Bonjour, :)
Merci bcp pour votre réponse :


Je me retrouve avec le message d'erreur pour echo $resultat[2];

Code : Tout sélectionner

Notice: Undefined offset: 2 in /Applications/MAMP/htdocs/CAI/url.php on line 22 [quote] alors que $chaine me renvoie bien le code source de la page sav2.php $resultat[0] et $resultat[1] me renvoie Array Petit a petit j'avance grâce a vous :) merci encore pour votre réponse[/quote]
[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Posté : 14 avr. 2009, 14:39
par Elie
print_r($resultat);
Et tu comprendras tout seul ..

re

Posté : 14 avr. 2009, 15:44
par energie13
merci pour les réponses j'ai compris d'ou venait l'erreur

Code : Tout sélectionner

echo $out[0][2]
:)[/code]