trouver le champ img d'une chaine

Eléphanteau du PHP | 19 Messages

10 janv. 2014, 10:13

Bonjour,

J'ai un blog qui tourne sous Wordpress mais comme personne ne peut m'aider sur leur forum je viens ici :).

J'ai ceci
$item->get_description()
qui me permet de récupérer le texte + image d'un article.

Au tout début de la chaine que je récupérer j'ai une image, je voudrais simplement récupérer le code <img src="ererer"/> et pas le reste.

Forcément comme vous vous en doutez je ne peux récupérer les x premiers caractères car ça varie tout le temps.

Savez-vous comment je peux faire pour récupérer seulement cette partie svp ?

ViPHP
ViPHP | 2577 Messages

10 janv. 2014, 11:39

voir fonction strpos() : http://fr2.php.net/function.strpos
Ca te permettra de trouver <img ou tout autre chaine.

Eléphanteau du PHP | 19 Messages

10 janv. 2014, 11:57

Merci pour ta réponse, du coup je suis obligé de faire un :
$pos1 = strpos($mystring, '<img');
et une nouvelle fois de :
$pos2 = strpos($mystring, '/>');

Puis je dois ensuite faire une recherche de la chaine entre $pos1 et $pos2 ?

Ou il y a plus simple pour récupérer par exemple ? : <img src"monimage.jpg title="mon image"/>

ViPHP
ViPHP | 2577 Messages

10 janv. 2014, 12:30

pour trouver monimage.jpg dans <img src"monimage.jpg" title="mon image"/>
$pos1 = strpos($mystring, '<img src"');
$pos2 = strpos($mystring, '" title="',$pos1); // pour chercher après $pos1
$chaine = substr($mystring,$pos1+10,$pos2-$pos1-10)
Il faut encore adapter 10 pour prendre vraiment la bonne chaine et vérifier les valeurs de $pos1 et $pos2 (==! false)

Une solution plus élégante est d'utiliser des regex, mais c'est trop compliqué pour moi, surtout sans pouvoir tester. cf http://fr2.php.net/manual/fr/function.preg-match.php

Eléphanteau du PHP | 19 Messages

10 janv. 2014, 12:37

Ok merci je vais voir avec ça si tout fonctionne correctement :)