[PHP / Expression Reg.] Extraire les attributs d'une image ?

Dharius

WRInaute impliqué
Bonjour,

Cela fait plusieurs semaines que je cherche maintenant et je n'ai rien trouvé, alors c'est un peu avec honte que je viens questionner les membres de WRI qui pourraient m'aider.

En fait, j'ai une chaine HTML claissique avec une image du genre :

Code:
<img height="450" width="600" align="left" alt="mon image" src="/blogs/124/images/CIMG3060.JPG" />

ATTENTION, l'ordre des attributs peut être différent.
Je cherche à supprimer tous les attributs sauf src et alt, mais je n'y arrive pas...

Voici ce que j'utilise actuellement et qui ne fonctionne pas :oops:

Code:
$img = eregi_replace("width=([\"]+) ", "", $img);
$img = eregi_replace("height=([\"]+) ", "", $img);
$img = eregi_replace("align=([^\"]+) ", "", $img);
$img = eregi_replace("name=([^\"]+) ", "", $img);
$img = eregi_replace("id=([^\"]+) ", "", $img);
$img = eregi_replace("border=([^\"]+) ", "", $img);
$img = eregi_replace("style=([^\"]+) ", "", $img);
$img = eregi_replace("title=([^\"]+) ", "", $img);

Une autre solution consisterait de récupérer la liste des attributs dans un tableau et de les remplacer ensuite 1 à 1 avec un str_replace par exemple, mais encore une fois, je ne sais pas comment faire. Moi et les expressions régulières, ça fait 3...

Merci à ceux qui pourront m'aider ! :)
 

Topsitemaker

WRInaute impliqué
Bonjour,
j'aurai fait l'inverse,
J'essaierai d'extraire les balises qui m'intéressent, à la place d'enlever les balises qui ne m'intéressent pas.
 

Dharius

WRInaute impliqué
Topsitemaker a dit:
Bonjour,
j'aurai fait l'inverse,
J'essaierai d'extraire les balises qui m'intéressent, à la place d'enlever les balises qui ne m'intéressent pas.

oui, c'est aussi une solution en effet... Mais encore une fois ça n'ecessite l'intervention d'expressions régulières :(
 

Dharius

WRInaute impliqué
Salut à tous,

Bon je sais pas si dans ce forum personne ne veut aider ou s'il y a que des débutants, mais j'ai eu la réponse sur un autre forum...

Comme je pense que cela pourra aider d'autres personnes voici comment j'ai fais :

Code:
preg_match_all('#alt="(.*?)"#i', $img,$tab1);
preg_match_all('#src="(.*?)"#i', $img,$tab2);

$src = $tab1[1][0];
$alt = $tab1[2][0];

:)
 

Discussions similaires

Haut