fonction preg_match_all

Eléphant du PHP | 59 Messages

13 avr. 2009, 22:13

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.
Modifié en dernier par energie13 le 14 avr. 2009, 15:45, modifié 2 fois.

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

14 avr. 2009, 12:07

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 :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 59 Messages

14 avr. 2009, 14:30

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]
Modifié en dernier par energie13 le 14 avr. 2009, 15:46, modifié 1 fois.

Mammouth du PHP | 1339 Messages

14 avr. 2009, 14:39

print_r($resultat);
Et tu comprendras tout seul ..
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Eléphant du PHP | 59 Messages

14 avr. 2009, 15:44

merci pour les réponses j'ai compris d'ou venait l'erreur

Code : Tout sélectionner

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