RegExp <img>

Petit nouveau ! | 2 Messages

19 juil. 2009, 16:50

Bonjour,

Je me permet de poster ce message, car après quelques centaines de tests, je n'ai toujours pas résolu mon problème.

Je voudrais récupérer l'attribut "src" de la première balise <img> d'une chaine de caractère contenant du code HTML.

J'ai testés plusieurs paterns différents, sans réussir... j'ai utiliser des exemples récupérer sur divers sites, sans réussir à obtenir le résultat souhaité.

Ce que j'ai fais:

Code : Tout sélectionner

$texte=strip_tags($texte,'<img>'); // me retourne bien <img (...) ><img (...) > ... $patern=preg_match_all('le problème est là', $texte, $img); $img=$img[1][?]; // à chaque fois çà me retourne un chiffre ou rien.
Le résultat souhaité:

Code : Tout sélectionner

echo $img; // http://www.siteweb.com/images/image.jpg ou ../mesimages/image.jpg (ou .gif/png)
Merci d'avance.

Mammouth du PHP | 2937 Messages

19 juil. 2009, 17:24

C'est sûr que si tu utilises strip_tags() avant l'expression rationnelle, l'opération est vouée à l'échec. ;)

Essaie ce code :
preg_match_all ('#<img.+src="(.+?)"#i', $texte, $img);
echo $img[1][0];
En cas de doute sur l'efficacité d'une expression rationnelle, il est toujours possible de tester cette dernière sur Lumadis (un outil conçu par notre ami Ripat). ;)

Petit nouveau ! | 2 Messages

19 juil. 2009, 18:35

Ca me retourne "1"...

C'est étonnant.

Mammouth du PHP | 2937 Messages

19 juil. 2009, 20:57

As-tu bien essayé mon code sans utiliser le tien ?

En tout cas, après vérification, chez moi mon code marche. Je ne vois donc pas pourquoi il en serait autrement chez toi. :-k

À moins que le premier élément img rencontré n'ait un src="1". ;)

Essaie le code suivant pour afficher tous les attributs src récupérés :
preg_match_all ('#<img.+src="(.+?)"#i', $texte, $img); 
print_r ($img[1]);

web dev
Invité n'ayant pas de compte PHPfrance

05 nov. 2014, 17:09

Merciiiiiii bcp les amiiiiiiiiiiiiis,
ce m'aide bcp =D> :D

ViPHP
AB
ViPHP | 5818 Messages

05 nov. 2014, 18:39

Merciiiiiii bcp les amiiiiiiiiiiiiis,
ce m'aide bcp =D> :D
Oui enfin ce topic est un peu ancien... C'est toujours fonctionnel mais aujourd'hui pour parser du HTML on recommande d'utiliser DOMDOCUMENT qui est plus adapté surtout dans des cas plus complexes.