IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

probleme avec une expression reguliere


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 8
    Points : 6
    Points
    6
    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.

  2. #2
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    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?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    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 ?

  4. #4
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Essaye ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (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 _

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    merci,

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

    donc pour ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  6. #6
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    c'est le (.*) qui doit faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (href=)(\"|')?([\w\/_-])+(.jpg)(\"|')?

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    hélas , ca ne renvoi aucun resultat

  8. #8
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    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à.

  9. #9
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    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


    <?php

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

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

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

    ?
    Colorez votre code PHP sur les forums grâce à Developpez.com

  10. #10
    Membre habitué
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 120
    Points : 126
    Points
    126
    Par défaut
    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

Discussions similaires

  1. soucis avec une expression reguliere
    Par bernard59139 dans le forum Général VBA
    Réponses: 1
    Dernier message: 29/01/2012, 12h30
  2. Probleme avec une expression reguliere-Replace
    Par BILLANT dans le forum VBScript
    Réponses: 1
    Dernier message: 02/07/2010, 09h39
  3. Probleme avec une expression regulière
    Par anasweb dans le forum Général Python
    Réponses: 3
    Dernier message: 30/10/2009, 19h39
  4. rechercher un element avec une expression reguliere
    Par penguin50 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/11/2008, 15h19
  5. probleme avec une division par zéro
    Par jcharleszoxi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/03/2003, 18h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo