|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre du Club
![]() Raphaël DeschlerInscription : mai 2007 Messages : 166 ![]() |
Bonjour à tous,
Je créé un petit outil qui me permet de parser des pages que je consulte souvent pour ne récupérer que les infos qui m'intéresse. Dans le code source de la page, le pseudo des gens se trouve dans une séquence comme celle ci : J'ai fais une fonction qui me récupère tous les pseudos de la page avec un preg_split, histoire de compter. Le nombre retourné est juste. J'ai fais une fonction pour récupérer le pseudo avec preg_match_all... et c'est là que j'ai un soucis... voici la partie de mon code : Code :
Voici une rapide portion du rendu : Code :
onmouseover=\"return overlib(\' <b>10 / 56 </b> distance : 3<br><hr><b>Soul
donc si je fais un print_r($L_Captures[1]), ca me donne Code :
Est-ce mon masque qui est foireux ? Est-ce qu'il y a une erreur dans le code HTML de base (il fait pas loin de 2000 lignes... je le poste donc pas Merci de vos futures aides |
||||
|
00
|
|
|
#2 | ||
![]() ![]() Gérard ErnaelstenDBA & Dev PHP Inscription : juin 2005 Messages : 3 182 ![]() |
Bonjour
et comme ceci Code :
__________________
Il faut toujours viser la lune, car même en cas d'échec on arrive dans les étoiles. O.Wilde Mes Articles/Critiques : Merise - Guide pratique PHPExcel PostgreSQL : Administration et exploitation d'une base de données PostgreSQL : Entraînez-vous à créer et programmer une base de données relationnelle |
||
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Raphaël DeschlerInscription : mai 2007 Messages : 166 ![]() |
Le print_r me retourne un tableau vide...
Alors que, pourtant, avec ^exp$ ça semble signifier "une chaine contenant exp" Le fait est que la page que je tente de parser tient sur "une seule ligne", est ce que ça pourrait venir de là ? (j'ai peur de polluer le forum si je poste le code source html) |
|
00
|
|
|
#4 | ||
![]() ![]() Gérard ErnaelstenDBA & Dev PHP Inscription : juin 2005 Messages : 3 182 ![]() |
Le problème est que si tu retrouves plusieurs fois ce pattern, dans le code html, normalement il prendra le dernier.
essaye avec un eregi pour voir su tu trouves quelques chose. le plus simple est de faire des test Code :
__________________
Il faut toujours viser la lune, car même en cas d'échec on arrive dans les étoiles. O.Wilde Mes Articles/Critiques : Merise - Guide pratique PHPExcel PostgreSQL : Administration et exploitation d'une base de données PostgreSQL : Entraînez-vous à créer et programmer une base de données relationnelle |
||
|
|
00
|
|
|
#5 | |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Citation:
Sans source/exemple difficile de vous apporter une réponse, d'autant plus que votre précédent exemple est incomplet (un lien ou un extrait très limité et représentatif de la source serait la bienvenue), mais ça vient sans doute de votre motif (puisqu'il y figure déjà le modificateur de non gourmandise). |
|
|
|
00
|
|
|
#6 |
![]() ![]() Gérard ErnaelstenDBA & Dev PHP Inscription : juin 2005 Messages : 3 182 ![]() |
Heu le ereg, c'est juste pour faire des tests, et voir si il capture quelque chose
__________________
Il faut toujours viser la lune, car même en cas d'échec on arrive dans les étoiles. O.Wilde Mes Articles/Critiques : Merise - Guide pratique PHPExcel PostgreSQL : Administration et exploitation d'une base de données PostgreSQL : Entraînez-vous à créer et programmer une base de données relationnelle |
|
|
00
|
|
|
#7 | ||||||
|
Membre du Club
![]() Raphaël DeschlerInscription : mai 2007 Messages : 166 ![]() |
Bon ben, je vais mettre les extraits si ça peut aider à voir plus clair...
parseur.class.php5 Code :
Code :
Code :
En m'excusant si c'est parfaitement illisible pour le code html (l'ensemble de la page de base tient sur une ligne. Et si je mets des sauts de ligne pour rendre la source lisible, les masques ne sont plus les mêmes) Notez que la fonction DRNombreJoueurs() marche parfaitement avec le preg_split. A noter aussi que le code est envoyé en POST (je ne mets donc pas le formulaire qui pointe sur parser_carte.php5). Ce n'est donc qu'une portion PS : Le texte que vous avez entré est trop long (89870 caractères). Veuillez le raccourcir à 30000 caractères. |
||||||
|
00
|
|
|
#8 | ||
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Avec vos exemple et masque, j'obtiens :
Code X :
PS : je ne me suis pas intéressé au code PHP. |
||
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() Raphaël DeschlerInscription : mai 2007 Messages : 166 ![]() |
Et bien voyez-vous, vous venez de m'apprendre quelque chose, la façon dont php utilise les expressions rationnelles.
Je pensais qu'en fait il cherchait le motif et qu'en suite il faisait une capture entre Début et Fin. En fait, il cherche Début, puis capture tout jusqu'à tomber sur Fin. Je vous avouerais que du coup, je comprends les erreurs que me sortent le code. Mais, je ne sais comment y pallier. Sauriez-vous m'aiguiller/m'aider/me donner la solution ? Ce n'est pas que je ne souhaite pas chercher, loin de là, mais j'ai beaucoup à faire là dessus pour peu de temps |
|
00
|
|
|
#10 |
|
Membre du Club
![]() Raphaël DeschlerInscription : mai 2007 Messages : 166 ![]() |
Bonjour,
Suite au problème cité plus haut, comment pourrais-je capturer mon motif strict ? |
|
00
|
|
|
#11 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Je vous ai donné deux pistes :
|
|
|
00
|
|
|
#12 |
|
Membre du Club
![]() Raphaël DeschlerInscription : mai 2007 Messages : 166 ![]() |
J'avoue que je ne connaissais pas les expressions régulières si profondément !
La notion d'assertion m'était parfaitement méconnue. Merci énormément, je vais de ce pas approfondir mes connaissances et finir mon script |
|
00
|
Copyright © 2000-2012 - www.developpez.com