|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre confirmé
![]() ![]() Inscription : mars 2003 Messages : 1 043 ![]() |
Bonjour à tous,
Et bien tout est dans le titre : à l'aide de file_get_contents(), je parse une page html et je voudrais récupérer le texte contenu dans les 3 premiers paragraphes, c'est à dire entre <p> et </p>. J'ai bidouillé un truc avec preg_match_all, mais c'est pourri. Est-ce au moins la bonne fonction ? Merci de vos lumières. |
|
|
00
|
|
|
#2 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 986 ![]() |
Non et tu devrais faire comme suit:
Code :
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
10
|
|
|
#3 |
|
Membre confirmé
![]() ![]() Inscription : mars 2003 Messages : 1 043 ![]() |
Merci ! Je ne connaissais pas cette classe.
Bonne soirée. |
|
|
00
|
|
|
#4 | |
|
Membre du Club
![]() Boris conception et traitement de documents xhtml Inscription : août 2011 Messages : 107 ![]() |
Citation:
Mais je bloque sur le simple besoin suivant : Je veux, si possible en simplexml ou en xpath, connaître le contenu du ième paragraphe d'un div que je ne connais que par son identificateur (je ne connais a priori pas sa place dans le fichier xhtml). Comment donc je peux sélectionner le paragraphe 3 ? (Pour l'instant, je contourne la difficulté en utilisant une regex.) <div id="Id_du_div"> xxx<p>Paragraphe 1</p> xxx<p>Paragraphe 2</p> xxx<p>Paragraphe 3</p> <---- xxx<p>Paragraphe 4</p> </div> Merci d'avance |
|
|
|
00
|
|
|
#5 | |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 986 ![]() |
Citation:
Merci de lire la doc
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
|
00
|
|
|
#6 | |||
|
Membre du Club
![]() Boris conception et traitement de documents xhtml Inscription : août 2011 Messages : 107 ![]() |
Merci de ta réponse, Benjamin
Justement, si je pose la question, c'est que j'en ai pas explicitement trouvé la réponse dans la doc et que j'ai passé un temps plus que certain (une bonne partie de ce week-end) à essayer de comprendre pourquoi je récupérais des messages de type « Undefined property » ou «Trying to get property of non-object », alors que je m'inspirais au plus près possible des exemples donnés dans les docs et que j'avais l'impression d'avoir bien compris le principe. Dans les docs, c'est toujours plus simple... J'ai donc provisoirement abandonné et ai conservé mes regex. J'ai cependant essayé de nouveau en me basant sur tes indications : Code :
Attention : item(0) et non item[0] ; si j'utilise les [] j'obtiens pour la ligne $essai = les deux messages suivants : Citation:
Maintenant, je vais (ré)essayer d'écrire la même expression en simplexml, d'une part, et en xpath, d'autre part. Pouvez-vous m'apporter quelques indications ? Merci d'avance |
|||
|
|
00
|
|
|
#7 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 986 ![]() |
SimpleXML je pratique peu (je ne l'ai utilisé qu'une fois pour le coupler avec des RecursiveTreeIterator, ce qui est 'achement pratique car les classes DOM ne sont ni itérables ni traversables la plupart du temps).
Pour comprendre la syntaxe des XPath tu peux regarder les Cours XPath Pour comprends comment utiliser les XPath en PHP, je te renvoie à la doc: http://php.net/manual/en/class.domxpath.php
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#8 |
|
Membre du Club
![]() Boris conception et traitement de documents xhtml Inscription : août 2011 Messages : 107 ![]() |
Bonjour Benjamin,
Excuse-moi de ne pas t'avoir répondu rapidement (je suis actuellement très pris sur mon projet que je dois terminer au plus tôt). Merci pour les indications, notamment en ce qui concerne les cours Xpath. Ces cours représentent indéniablement du bon travail. (Je connaissais déjà l'article "Gestion du XML en PHP 5 : utiliser DOM" de Guillaume Piolle.). J'ai imprimés ces articles et les étudierai lorsque j'aurai terminé mon projet actuel (je pourrai alors chercher à optimiser mon code afin d'éviter des regex inutiles dans les cas où l'utilisation de Xpath entraîne réellement une simplification de l'écriture). J'espère que ces articles m'apporteront la réponse aux difficultés que j'ai rencontrées et qui m'ont rebuté, en particulier lorsque je me heurtais à des messages qui ne m'éclairaient pas ou à des affichages de noeud vides, alors que je suivais exactement les exemples présentés dans les docs. Par ailleurs, il me semble, dans l'état actuel de ma pratique de DOM, de simplexml et de Xpath, que le débat regex versus outils d'analyse de document mérite de ne pas être systématisé : quelquefois l'utilisation d'une regex peut faciliter la tâche ; quelquefois, au contraire, l'utilisation de dom, simplexml ou de xpath peut permettre une analyse plus simple et plus immédiate. Je traiterai du sujet (regex vs outils de parsing) dans un prochain post, lorsque j'aurai suffisamment assimilé et pratiqué concrètement sur mon projet les trois techniques. |
|
|
00
|
|
|
#9 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 986 ![]() |
Tu verra vite combien XPath est plus puissant que les regexp pour la manipulation XML à tout point de vue.
Si tu veux vraiment aller jusqu'au bout de ton apprentissage, je te recommande de te former également sur les DTD (Document Type Definition) et les XSL(T) (XML Style Sheet (Transformer)).
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#10 |
|
Membre du Club
![]() Boris conception et traitement de documents xhtml Inscription : août 2011 Messages : 107 ![]() |
Merci de ta réponse et de tes conseils.
Pour l'instant, je travaille exclusivement avec des documents xhtml-css (d'où mon pseudo Je me repose donc sur la DTD de W3C, même si quelquefois je la trouve un peu limitative. (En même temps, cela aide à rester sur des rails rigoureux et homogènes ; je m'en contente donc.) Pour la même raison (docs en xhtml-css), XSL-T et XLST-FO ne me sont pour l'instant pas nécessaires. (Je compte privilégier d'autres axes d'apprentissage, notamment dom, simplexml et Xpath, et bien sûr, l'approfondissement des très nombreuses possibilités de php.) |
|
|
00
|
|
|
#11 | |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 986 ![]() |
Citation:
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
|
10
|
|
|
#12 | ||||
|
Membre confirmé
![]() ![]() Inscription : mars 2003 Messages : 1 043 ![]() |
Bonjour,
Je me permet de remonter ce post, car je fais des tests avec la classe donnée par Benjamin, mais j'ai le souci suivant : avec : Code :
Code :
Code mal formé ? |
||||
|
|
00
|
|
|
#13 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 986 ![]() |
L'attribut align est illégal en XHTML mais je ne suis pas sûr que ce soit ça qui empêche de grepper les paragraphes...
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#14 | ||
|
Membre confirmé
![]() ![]() Inscription : mars 2003 Messages : 1 043 ![]() |
Euh, je précise que je parse le contenu d'une BDD, chargé avec :
Code :
|
||
|
|
00
|
|
|
#15 |
![]() ![]() Inscription : septembre 2010 Messages : 7 119 ![]() |
pourquoi stripslashes ta inséré tes données sans enlevé les magic_quote ?
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#16 |
|
Membre confirmé
![]() ![]() Inscription : mars 2003 Messages : 1 043 ![]() |
j'ai inséré mes données avec mysql_real_escape_string mais stripslashes ou pas, ça ne change rien, les images ne sont pas prises en compte.
|
|
|
00
|
|
|
#17 |
![]() ![]() Inscription : septembre 2010 Messages : 7 119 ![]() |
montre la vrai valeur de $content
__________________
http://blog.stealth35.com/ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com