|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : février 2008 Messages : 55 ![]() |
Bonjour,
Je viens poster très rarement car généralement je n'ai pas de soucis avec les Regex. Aujourd'hui je dois être fatigué car une Regex qui me paraissait toute simple est en train de m'agacer depuis 2 heures. J'ai mon café à côté donc ca peut encore aller... :p Voici le contexte: J'ai du code HTML avec plein de balises dont plusieurs balises img. Parmi toutes les balises img de mon code, il y en a qui possède un src égale à "image/miniature/laphoto.jpg" avec d'autres attributs pouvant varier. Code :
Ce qui me pose problème c'est le fait que le nombre d'attribut à l'intérieur des balises images en question peuvent toutes changer (sauf l'attribut src évidement). Une idée pour que je n'entame pas mon 3ème café ? :p Merci d'avance, je reste sur le forum pour toutes questions. |
||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : septembre 2010 Messages : 7 219 ![]() |
comme d'hab : pour parser du HTML c'est DOMDocument
__________________
http://blog.stealth35.com/ |
|
|
30
|
|
|
#3 | ||
|
Expert Confirmé
![]() ![]() |
Bonjour,
Allez sans trop réfléchir je propose : Code :
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
||
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 55 ![]() |
Merci pour cette réponse !!
Cela dit j'ai tout mes résultat dans la meme cellule de tableau à savoir matches[0][0]. Je crois même que s'il y a du texte entre deux balises images contenant le bon SRC et bien il me récupére les deux balises plus le texte au milieu...ce que je ne souhaite pas. Est il possible de mettre chaque résultat dans une cellule différente du tableau matches[] ? et de ne pas prendr ele texte présent entre les deux balises ? Merci beaucoup. Après ceci j'aurai enfin fini |
|
|
00
|
|
|
#5 | |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 808 ![]() |
Utiliser une regex pour parser un document DOM (ou XML) c'est comme faire une boucle pour faire une addition histoire de pas utiliser l'opérateur +
![]() Citation:
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 55 ![]() |
Je comprends bien
Mais je ne sais pas du tout utiliser xpath. En réalité je ne vois pas comment formuler ma requete qui me semble compliqué pour le débutant que je suis en xpath (j'ai du utiliser ca une fois juste pour parcourir une balise, rien de plus)... Mais sinon je comprends bien qu'une regex est "stupide"... Peux tu m'aider à résoudre mon probleme ?
|
|
|
00
|
|
|
#7 |
![]() ![]() Inscription : septembre 2010 Messages : 7 219 ![]() |
le langage xpath est plus naturel que les regex
pas dur : //img[@src="image/miniature/laphoto.jpg"]
__________________
http://blog.stealth35.com/ |
|
|
10
|
|
|
#8 | ||
|
Invité de passage
![]() Inscription : février 2008 Messages : 55 ![]() |
Oui vu comme ca c'est sur que c'est plus simple mais je viens de comprendre que pour utiliser Xpath il fallait charger un fichier xml... or le problème est que moi (j'aurai du le préciser) je n'ai qu'une variable php qui contient 3000 caractères. Je n'ai donc pas d' entete html dans ma variable et cela semble poser probleme quand je souhaite utiliser xpath:
Code :
EDIT: bon j'ai dit n'importe quoi je me suis aperçu qu'en réalité mes images n'étaient tout simplement pas trouvées. L'expression que tu m'as donné semble donc être fausse ou alors me suis je trompé? Merci en tout cas |
||
|
|
00
|
|
|
#9 |
![]() ![]() Inscription : septembre 2010 Messages : 7 219 ![]() |
deja ton code est faux, et DOMDocument lit du DOM donc HTML ou XML ou autre
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 55 ![]() |
Ok si ca lit du DOM mais moi je fais comment vu que je n'ai qu'une variable ? Ca revient donc à passer par des regex ? Dans ce cas là je dois abandonner le xpath ?
Merci ^^ |
|
|
00
|
|
|
#11 | |
![]() ![]() Inscription : septembre 2010 Messages : 7 219 ![]() |
Citation:
__________________
http://blog.stealth35.com/ |
|
|
|
00
|
|
|
#12 | ||
|
Invité de passage
![]() Inscription : février 2008 Messages : 55 ![]() |
J'ai regardé la doc et donc j'ai corrigé mon tire:
Code :
Pourtant je pense avoir fait ca correctement. Je fais de mon mieux mais je galère bien bien... |
||
|
|
00
|
|
|
#13 |
![]() ![]() Inscription : septembre 2010 Messages : 7 219 ![]() |
ton niveau d'erreur est bien au maximal ?
pourquoi avoir fait un saveHTML ? pourquoi vérifie combien de résultat te revoir la requete ? pourquoi faire is_null, sachant que query renvoie false ? pourquoi récupère les sous noeud de <img> sachant que y'en a pas ?
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#14 | ||
|
Invité de passage
![]() Inscription : février 2008 Messages : 55 ![]() |
Pour le moment j'ai utilisé un peu de la doc et de ce qu'on m'a donné sur le forum :/
Je cherche juste à afficher quelque chose, après j’enlèverai ce qui ne sert a rien. En fait j'aimerai bien savoir comment initialiser DOMXpath. J'arrive vraiment rien à afficher. Est ce que ca c'est déjà correcte ? Code :
|
||
|
|
00
|
|
|
#15 |
![]() ![]() Inscription : septembre 2010 Messages : 7 219 ![]() |
ton $doc->saveHTML(); sert a rien
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#16 | ||
|
Invité de passage
![]() Inscription : février 2008 Messages : 55 ![]() |
Merci.
Peux tu me dire dans le code ci dessous ou est ce que ca ne va pas stp ? Code :
|
||
|
|
00
|
|
|
#17 |
![]() ![]() Inscription : septembre 2010 Messages : 7 219 ![]() |
je l'ai déjà dit plus haut, a la base c'est pour faire quoi tout ça ? tu vas en faire quoi ?
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#18 | ||||
|
Invité de passage
![]() Inscription : février 2008 Messages : 55 ![]() |
C'est compliqué mais en gros je remplace toutes les images portant le src en question pour afficher à la place un iframe avec X paramètres.
C'est assez compliqué à expliquer mais je pense avoir bien expliqué ce dont je voulais faire. Une regex m'aurait vraiment suffit, enfin je pense. Voici le code que m'a donné codesrc: Code :
Il faudrait juste que chaque balise img trouvé soient dans une cellule différentes du tableau matches. Car là, si dans ma variable j'ai: "toto <img height='100' src='image/miniature/laphoto.jpg' /> blabla <img alt='laphoto' src='image/miniature/laphoto.jpg' style='width:130px;' /> titi" Il va me mettre dans matches[0] ceci: Code :
<img height='100' src='image/miniature/laphoto.jpg' /> blabla <img alt='laphoto' src='image/miniature/laphoto.jpg' style='width:130px;' /> Code :
|
||||
|
|
00
|
|
|
#19 |
![]() ![]() Inscription : septembre 2010 Messages : 7 219 ![]() |
non c'est bien avec DOMDocument qu'il va falloir faire, tu pourras en plus creer plus facilement ton iFrame via createElement
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#20 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 55 ![]() |
Oui je pense que c'est mieux DOMDocument mais comme je n'y arrive pas et que les développeurs semblent plus m'apporter de solution avec les regex je ne compte pas y passer l'éternité et quitte à utiliser du code plus lourd et bien tant pis :/
C'est assez urgent et il ne me reste plus que demain pour trouver une solution. DOMDocument n'affiche rien et pourtant j'ai cherché toute l'après midi. Comment tu t y prendrais pour réussi cet exploit qui me retient depuis plusieurs heures ? :/ As tu un code à me donner et si possible à m'expliquer ? (meme à corriger le code que j'ai publié) Je suis pourtant certain que ca doit pas etre sorcier, mais quand on débute, on cherche souvent pour rien jusqu'à ce que quelqu un nous l'enseigne. Merci encore pour tes efforts stealth35. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com