Pb avec ereg pour parser image
ebliss
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
Max -
Max -
Bonjour,
Je souhaiterais faire une ereg me permettant de scruter au sein d'une page html l'ensemble des images contenues afin de recuperer pour chacunes d'entres elle le src
en resumé :
- scrter tous les <img src="" />
- en extraire le lien du src
- utiliser le src de chaque img pour une autre utilisation (par exemple appliquer un scriptalicous)
Sachant qu'il peut y avoir plusieurs image par page (> 9)
j'ai fait cela mais cela ne me convient pas
$match = preg_match_all('/<img.*src=(.*)\s\/>/',$Texte,$matches);
echo $matches[1];
car je doit mettre un identifiant ne pouvant depasser 9 :(
Vous aurez certyainement compris le but , c'est de simplement mettre mon <img ... /> et qu'a l'affichage ma page fait le traitement pour appliqué un scriptalicous de zoom par exemple ou un javascript popup
Je souhaiterais faire une ereg me permettant de scruter au sein d'une page html l'ensemble des images contenues afin de recuperer pour chacunes d'entres elle le src
en resumé :
- scrter tous les <img src="" />
- en extraire le lien du src
- utiliser le src de chaque img pour une autre utilisation (par exemple appliquer un scriptalicous)
Sachant qu'il peut y avoir plusieurs image par page (> 9)
j'ai fait cela mais cela ne me convient pas
$match = preg_match_all('/<img.*src=(.*)\s\/>/',$Texte,$matches);
echo $matches[1];
car je doit mettre un identifiant ne pouvant depasser 9 :(
Vous aurez certyainement compris le but , c'est de simplement mettre mon <img ... /> et qu'a l'affichage ma page fait le traitement pour appliqué un scriptalicous de zoom par exemple ou un javascript popup
Configuration: Mac OS X Safari 525.22
9 réponses
-
Salut,
d'abord c'est bizarre, tu appelle ta variable $match et tu écris $matches[] ...
Sois je comprend pas trop le principe ou soit tu t'es gouré! ^^
Ensuite, ton explication ne veut rien dire ! Surtout cette ligne :
- utiliser le src de chaque img pour une autre utilisation (par exemple appliquer un scriptalicous)
Je te rappelle que scriptaculous agit sur un id et non sur un src.
Et finallement, tu pourrai pas faire un tableau simple pour stocker tes valeurs, un truc du genre:
<?php
$compteur = 0;
while(preg_match_all('/<img.*src=(.*)\s\/>/',$Texte,$matches))
{
$match[$compteur] = preg_match_all('/<img.*src=(.*)\s\/>/',$Texte,$matches);
echo $match[$compteur];
$compteur++;
}
Je suis pas sûr du while(preg_match_all('/<img.*src=(.*)\s\/>/',$Texte,$matches)) mais c'est un truc du genre : "TANT QU'ON A PAS FINI DE SCRUPTER LE FICHIER HTML (EOF ???), ON FAIT LE CODE SUIVANT ...."
A+
Gaerebut -
Re
Je me suis peut etre mal exprimé, mais en gros j'ai besoin de recuperer le src de chaque fichier pour l'interpréter autrement dans le html affiché
pour le matches c'est une erruer de copier/coller
je test ton script :)
merci -
Gros bug
ca m'ecrit plein de 1111111111
while(preg_match_all('/<img.*src=(.*)\s\/>/',$Texte,$matches))
{
$match[$compteur] = preg_match_all('/<img.*src=(.*)\s\/>/',$Texte,$matches);
echo $match[$compteur];
$compteur++;
} -
OUI je t'es dis que c'est ici que ça posé certainement problème :
while(preg_match_all('/<img.*src=(.*)\s\/>/',$Texte,$matches))
mais qu'il fallait trouver un truc qui veuille dire un truc de ce genre : "TANT QU'ON A PAS FINI DE SCRUPTER LE FICHIER HTML (EOF ???), ON FAIT LE CODE SUIVANT ...."
Et as-tu bien initialisé la variable aussi au début ?
==> $compteur = 0;
A+
Gaerebut -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
pour le compteur = 0, oui oui j'ai fait
pour le while, ok j'ai pigé
Merci -
Ok !
Tient moi au courant si tu trouve ce qu'il faut mettre dans le while! Et surtout , si tu y arrive et si ça marche ^^
A+
Bon courage !
Gaerebut -
Re
J'ai du nouveau
J'ai fait cela
$Texte = '<p>Briquet</p>
<p><img width="400" height="300" alt="" src="/image/1494096336_small.jpg" /></p>
<p>texte</p>
<p><img width="600" height="450" alt="" src="/image/4L%20trophy%20343.jpg" /></p>';
preg_match_all('/<img.*src="(.*)"\s\/>/',$Texte,$match);
$nb=count($match[0]);
for($i=0;$i<$nb;$i++)
{
echo '<a href="'.$match[1][$i].'" class="a_img" rel="lightbox[img_'.$i.']"><img src="'.$match[1][$i].'" border=0 width="200"></a>';
}
et cela me traite correctement les images, or un autre probleme intervient :(
il ne me fait apparaitre que les occurences qui respect le format de l'ereg, et me supprime le reste :(:(:(
or j'ai besoin qu'il conserve la mise en page de mon html, en ne remplacant que les img par le nouveau format
en gros qu'il remplace
<img src="image.jpg" />
en
<a href="image.jpg'" class="a_img" rel="lightbox[img_X]"><img src="image.jpg" border="0"></a>
avec si possible les attribut width et height, c'est plus clair ?? -
Fixé :)
$chaine=preg_replace('`<img.*src="(.*)"\s\/>`', '<a href="$1" class="a_img" rel="lightbox[img]"><img src="$1" border=0 width="200"></a>', $Texte);
echo $chaine;
Merci pour tes lumieres Gaerebut -
Bonjour, moi j'aurais le meme souci mais j'aimerais prendre l'image contenu dans un lien ( <a><img src"...." /></a>) et remplacer cela par un autre couple lien+image
Comment pourrais -je faire ??
Merci