Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/04/2006, 11h26   #1
Invité de passage
 
Inscription : avril 2006
Messages : 8
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 8
Points : 2
Points : 2
Par défaut probleme avec une expression reguliere

Bonjour,

Voila depuis plusieurs jours je n'arrive pas a faire mon expression pour permettre l'extraction d'un lien pointant ver une image de type .jpg dans un href="[link]"> , href='[link]'> href=[link]> ou encore href="[link]" target...
Bref comme vous pouvez le constatez j'ai besoin de récupère le lien .jpg dans tous les cas de figure possible sachant que tous le monde ne code pas en html de la même manière.

j'ai réussit a faire ça ' eregi("href=\"(.*).(jpg)\">", $line, $out_o) ', sa marche parfaitement mais pas pour tous les cas de figure exemple pour le href="<lien>" target="_blank"> sa ne fonctionne pas !

merci de m'éclairer sur la procédure a suivre.
SharKeR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2006, 11h46   #2
Expert Confirmé
 
Avatar de franculo_caoulene
 
Inscription : octobre 2003
Messages : 2 886
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 2 886
Points : 2 559
Points : 2 559
Salut,

Je ne connais pas eregi mais pour tester plus vite tes expressiosn régulières tu as ceci
Je ne comprends pas bien, que veux tu tester exatcement?
__________________
Penser à la recherche et au bouton
franculo_caoulene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2006, 11h53   #3
Invité de passage
 
Inscription : avril 2006
Messages : 8
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 8
Points : 2
Points : 2
en faite je veux recuperer uniquement les liens de type .JPG se trouvant dans href=" LIEN "

exemple quand j'ai ca :
href="image/file01.jpg"
href="image/file01.jpg" target="_blank"
href=image/file01.jpg
href='image/file01.jpg'

je croit que c'est +/- tous les cas de figure, j'aimerais qu'il me retourne : image/file01

voila j'espere que c'est plus simple ?
SharKeR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2006, 12h24   #4
Expert Confirmé
 
Avatar de franculo_caoulene
 
Inscription : octobre 2003
Messages : 2 886
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 2 886
Points : 2 559
Points : 2 559
Essaye ceci:
Code :
(href=){1}("|')?([\w\/_-])+(.jpg){1}("|')?
Qui te permet d'avoir une arborescence de plusieurs répertoires et un nom de fichier ou de répertoire contenant caractères alphanumériques et - ou _
__________________
Penser à la recherche et au bouton
franculo_caoulene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2006, 12h39   #5
Invité de passage
 
Inscription : avril 2006
Messages : 8
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 8
Points : 2
Points : 2
merci,

j'ai modifier ton code en conséquence car a la base il ne me retourné rien

donc pour ça :
Code :
1
2
3
4
5
6
7
function link_extract($str)
{
if (eregi("(href=){1}(\"|')(.*)(.jpg){1}(\"|')?", $str,$aut))
return(array($aut[1],$aut[2],$aut[3],$aut[4]));
}
$n = link_extract('<td>ljfdslkdf </td> <a href="machin/images/j1.jpg" ><img src="links1/thumbnails/te101.jpg" width="110" height="140" border="0"></a></div></td>');
print_r($n);
il me retourne ca :
Code :
1
2
3
4
5
6
7
Array
(
[0] => href=
[1] => "
[2] => machin/images/j1.jpg" ><img src="links1/thumbnails/tnjesse101
[3] => .jpg
)
c'est presque ça, sauf que j'ai pas besoin de: " ><img src="links1/thumbnails/tnjesse101

merci encore de ta patiente
SharKeR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2006, 14h23   #6
Expert Confirmé
 
Avatar de franculo_caoulene
 
Inscription : octobre 2003
Messages : 2 886
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 2 886
Points : 2 559
Points : 2 559
c'est le (.*) qui doit faire ça :
Code :
(href=)(\"|')?([\w\/_-])+(.jpg)(\"|')?
__________________
Penser à la recherche et au bouton
franculo_caoulene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2006, 14h52   #7
Invité de passage
 
Inscription : avril 2006
Messages : 8
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 8
Points : 2
Points : 2
hélas , ca ne renvoi aucun resultat
SharKeR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2006, 14h58   #8
Expert Confirmé
 
Avatar de franculo_caoulene
 
Inscription : octobre 2003
Messages : 2 886
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 2 886
Points : 2 559
Points : 2 559
Ah ben je ne peux pas plus t'aider car ça fonctionne ici (sans les caractères d'échappement). Et comme je ne fais pas de php... je passais juste par là.
__________________
Penser à la recherche et au bouton
franculo_caoulene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2006, 09h27   #9
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Plusieurs choses :
  • {1} : Ceci ne sert à rien car ça demande au bloc précédent d'être présent une fois (ni plus ni moins), ce qui est le comportement par défaut
  • Si vous souhaitez utiliser le point en tant que caractère, n'oubliez pas de l'échapper
  • Préférez preg à ereg

Citation:
<?php

$string
= '<a href="bouh.ext">bouh</a> <a href="truc.jpg">truc</a>';

preg_match_all('/href=["\']?([^"\'. ]+\.jpg)/Usi', $string, $matches);

echo
'<pre>';
print_r($matches);
echo
'</pre>';

?
Colorez votre code PHP sur les forums grâce à Developpez.com
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2006, 16h50   #10
Membre régulier
 
Homme Matt
Chef de projet NTIC
Inscription : janvier 2003
Messages : 109
Détails du profil
Informations personnelles :
Nom : Homme Matt
Localisation : France

Informations professionnelles :
Activité : Chef de projet NTIC
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2003
Messages : 109
Points : 80
Points : 80
Salut,

Voici un autre lien vers un outil (génial) que j'utilise pour tester mes regexp:
The Regex Coach (dispo sous linux & win)

Il propose une option "Step by step" qui permet de voir en direct ce qui est testé dans le motif par rapport à un chaine.

Un indispensable à avoir dans sa boîte à outils
psychomatt est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h07.


 
 
 
 
Partenaires

Hébergement Web