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
A voir également:
- Pb avec ereg pour parser image
- Image iso - Guide
- Reduire taille image - Guide
- Acronis true image - Télécharger - Sauvegarde
- Légender une image - Guide
- Image gratuite - Guide
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
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
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++;
}
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
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
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
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 ??
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 ??