Titre: [PHP] parcourir une page et récupérer des données dessus Posté par: Snake046 le 29 Octobre 2006 à 08:29:42 Bonjour bonjour !
Je me suis remis dans la tête de créer un programme en PHP pour faciliter le recrutement sur le jeu Heroes Chronicle, maintenant que je maitrise beaucoup mieux le PHP. Le sujet que j'avais commencé à disparu, donc je reprend avec un nouveau. Je veux ouvrir une page web : http://heroesofwarcraft.nainwak.org/classement.php?page=$page&rac=&ori=&user= Chaque fois qu'on aura fini avec une page, la variable $page s'incrémentera de un jusqu'à ce que $page soit également à 200. Je dois donc séparer toutes les lignes pour les analyser séparement, sachant qu'il y a 24 lignes par page. On obtiens alors ceci : Citation <tr> A chaque fois, si classsement != GELE, si clan == "", si race != ..., il faut echo le nom plus un point virgule. (jusqu'à avoir récupérer 10 noms, dans ce cas on fait <br />)<td align="center" class=content><center><b><font color=red>Classement</font></b></center></td> <td align="center" class=content><center>Clan</center></td> <td align="center" class=content><center><A href="javascript:OuvrirPopup('perso/infos.php?joueur=Halo12','','resizable=no,top=100, left=250, location=no,width=520,height=500,menubar=no,status=no,scrollbars=yes,menubar=no')">Nom</A></center></td> <td align="center" class=content>60 (4)</td> <td align="center" class=content><center>equilibre</center></td> <td align="center" class=content><img src="map/race.jpg"></font></td> </tr> Mon problème dans ce script, c'est que classement, nom, race... ça n'est pas le même nombre de caractère. Il faudrait pouvoir les baliser le truc. Savez-vous comment je pourrais m'y prendre ? Titre: [PHP] parcourir une page et récupérer des données dessus Posté par: Nebelmann le 29 Octobre 2006 à 08:54:07 une expression régulière, du type " <td align="center" class=content><center>(.*)</center></td>"
mais à faire valider par quelqu'un qui s'y connait mieux que moi ^^ http://fr3.php.net/manual/fr/function.preg-match.php Titre: [PHP] parcourir une page et récupérer des données dessus Posté par: Snake046 le 29 Octobre 2006 à 13:38:15 Je trouve qu'ils expliquent pas vraiment bien sur PHP.NET
Je veux dire par là que leur explication de la syntaxe est très technique et franchement pour moi, de tout ce que j'ai vu sur PHP.NET, je crois bien que je n'ai jamais rien compris quand c'était eux qui m'expliquaient (dès fois je me suis même mis à croire que je manipulais mal certaines fonctions alors qu'en fait je le faisais très bien). Exemple : Citation Si matches est fourni, il sera rempli par les résultats de la recherche. $matches[0] contiendra le texte qui satisfait le masque complet, $matches[1] contiendra le texte qui satisfait la première parenthèse capturante, etc. C'est quoi leur première parenthèse capturante à eux ?La fonction c'est donc preg_match(); . Et il faut y rentrer les arguments string pattern, string subject... et à partir de là j'y comprend plus rien : "[, array &matches [, int flags [, int offset]]] " Pourquoi des crochets, pourquoi des virgules dans les crochets, pour quoi un & devant matches, c'est qui int flags, c'est quoi int offset ? Citation Normalement, la recherche commence au début de la chaîne subject. Le paramètre optionnel offset peut être utilisé pour spécifier une position pour le début de la recherche. Le paramètre offset a été introduit depuis la version 4.3.3 de PHP. Et dans l'exemple on a Citation $subject = "abcdef"; Est-ce que ça veux dire que la chaîne commencera dès qu'il trouvera dans la variable qu'on lui donne "abcdef".D'ailleurs, je me rend compte que je ne comprend même pas comment on lui dit dans quelle variable il dois aller faire sa recherche. Titre: [PHP] parcourir une page et récupérer des données dessus Posté par: the lsd le 29 Octobre 2006 à 14:12:07 Site du zero (http://siteduzero.com) !!! Ya que ca de vrai ! Meme pour les regex ! C'est la que je les ai appris !
(Bon d'accord j'ai galeré pendant 5 heures hier a cause d'un + et d'un . et alors !!!) Enjoy The lsd Titre: [PHP] parcourir une page et récupérer des données dessus Posté par: zours le 29 Octobre 2006 à 16:23:18 The lsd, bwahahahahah !!!!
Comment ça je me fous de toi ? Mais non voyons, j'ai partagé ta peine minute après minute =) ! Quoi ? C'est pas crédible ? Bon, bon... Titre: [PHP] parcourir une page et récupérer des données dessus Posté par: Nebelmann le 29 Octobre 2006 à 17:50:01 Citation et à partir de là j'y comprend plus rien : "[, array &matches [, int flags [, int offset]]] " Je vais t'apprendre un truc qui te servira toute ta vie : les crochets dans un synopsis (c'est comme ça qu'on appelle comment utiliser un prog ou une fonction) veulent dire que le paramètre est optionnel !! Et si les crochets sont imbriqués, ça veut dire que par exemple si tu veux utiliser flags tu es obligé d'utiliser matches avant.Le & devant array veut dire que tu passes la variable par référence, afin que la fonction preg_matches puisse le modifier et que tu aies encore les modifications une fois la fonction terminée (sinon, sans le & tu fais un passage par valeur, et les modifications faites dans la fonction ne se répercuteront pas dans le code qui a appelé cette fonction => http://www.manuelphp.com/php/language.references.pass.php) Les parenthèses capturantes te permettent de récupérer les valeurs que tu désires dans ton expression régulière : Code: preg_match("newbie contest est magnifique", "/^(.*) est (.*)$/", $tableau); |