Récupérer un mot dans un texte

Résolu
Utilisateur anonyme - Modifié le 16 oct. 2009 à 13:38
 Utilisateur anonyme - 16 oct. 2009 à 13:38
Hello,

Petite question : j'ai une variable $content contenant du code HTML.

Que voici :

 NAZARETH    La cote de Cadel Evans est subitement remontée depuis sa victoire a



J'aimerais récupérer l'entierté de la balise image au début du code html de $content pour la stocker dans une nouvelle variable...

Par la même occasion, j'aimerais aussi que cette balise img qui se trouve maintenant dans ma deuxième variable se supprime de ma variable $content.

Quelle fonctionne puis-je utiliser pour faire ca ?

Merci,

A++

4 réponses

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
8 oct. 2009 à 16:21
AAAAAAAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHHHHH
Ca y est, je viens de comprendre (j'avais mal lu, mais après une bonne douche, on y voit plus clair, j'ai à nouveau la lumière à tous les étages...)

Alors...

Il faut utiliser une expression régulière pour choper l'image. Admettons qu'il y en ait plusieurs (ça marchera donc quelque soit le nombre)

preg_match_all('`(]+>)`', $content, $images);


A partir de là, $images est un tableau qui contient toutes les balises qui se trouvent dans $content. Si aucune image n'est trouvée, $images est un tableau vide.
Ensuite, il faut les supprimer de $content, si j'ai bien compris...

$new_content = str_replace($images[0], '', $content);


preg_match_all retourne le nombre de concordances trouvées dans la chaîne sujet. Pour ne pas faire faire du travail inutile à PHP, autant tester qu'on a bien des résultats...

$nb = preg_match_all('`(]+>)`', $content, $images);
if (FALSE !== $nb && 0 < $nb) {
    $content = str_replace($images[0], '', $content);
}


Pour supprimer les images dans la chaîne d'origine, on pourrait aussi utiliser la même expression régulière avec preg_replace(). Je ne sais pas si c'est plus coûteux en performances, il est possible que non si PHP met les expressions régulières déjà compilées en cache... A tester, mais c'est un peu du détail de l'ordre du centième de milliseconde...
3
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
8 oct. 2009 à 15:10
Salut,

J'ai du mal à bien comprendre ce que tu veux récupérer... Est-ce que tu parles de la valeur de l'attribut src ?
Ou bien est-ce que tu parles de tous les attributs avec leurs valeurs ?
Ou bien est-ce que tu veux aussi récupérer img ?
Et qu'est-ce que tu veux supprimer de la variable $content ? A quoi voudrais-tu qu'elle ressemble après traitement ?

Parce que là, on peut interpréter ta question de tellement de manières différentes, que tomber sur la bonne relève un peu de la loterie ;)
0
Hello,

Je voudrais dans ma deuxième variable recupérer toute mon image. De <img jusqu'à la fin de cette balise.

Une fois que j'ai toute cette balise avec tous ces atributs dans ma deuxième variable, j'aimerais supprimer uniquement cette image (et pas le texte) dans la première variable ($content).

Merci pour ta réponse :)


A++
0
Yes c'est nickel :)

merci et désolé pour le retard de ma réponse...

bonne journée

A++
0
Rejoignez-nous