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 :

Pb de compréhension de pattern


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 35
    Par défaut Pb de compréhension de pattern
    Bonjour,

    Tout d'abord merci d'offrir un espace d'échange sur ces fichues expressions régulières car je crois que c'est un secteur où on galère le plus !!!

    J'ai un Regex qui sort d'un scipt de contribution SPIP que je ne comprends pas jusqu'au bout ...

    Le principe sortir d'une chaine du type de celle ci :

    <a href="IMG/jpg/114669058170web.jpg" type="image/jpeg" title='JPG - 4.8 ko'>
    <img src='IMG/cache-120x203/110web-120x203.jpg' width='12' height='203' alt="o" />
    </a>

    Je voudrai en extraire le contenu du href du lien pour le remplacer par un lien javascript pour ouvrir une popup.

    Le regex que j'ai trouvé :

    $motif = "/<a href='IMG\/(jpg|gif|png)\/([^']+)'>/";

    Je ne comprend pas la fin ([^']+)'>/ ...
    De plus, il ne fonctionne pas ...

    Si qq peut m'éclairer, je l'en remercie d'avance !
    Bye
    Seb

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    Ta regex ne marchera jamais comme ça. Voici une des nombreuses solutions possibles:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $motif = '#<a href=(\'|").*\1#Usi';
    $rplc  = '<a href="ici_le_lien_JS"';
     
    echo htmlentities(preg_replace($motif, $rplc, $txt));

  3. #3
    Membre averti
    Inscrit en
    Juillet 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 35
    Par défaut
    Salut,

    Merci beaucoup pour ta réponse !
    Par contre, je galère pas mal en Regex ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $motif = '#<a href=(\'|").*\1#Usi';
    Je ne comprends pas à quoi sert le \1 ...

    Et si dans cette chaine je voulais isoler l'adresse du lien et de l'image, c'est possible avec un seul pattern ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <a href="IMG/jpg/114669058170web.jpg" type="image/jpeg" title='JPG - 4.8 ko'>
    <img src='IMG/cache-03/110web-13.jpg' width='12' height='23' alt="o" />
    </a>
    Merci pour votre aide !

  4. #4
    Membre éclairé Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Par défaut
    http://www.expreg.com/pregmatchall.php


    Extraire des liens <a href > d'une chaîne (ou d'une page)


    <?php
    $chaine
    ='Ceci est la page d\'un site sur les <a href="http://www.expreg.com">Expressions régulières</a> que j\'ai trouvé sur <a href="http://www.google.be" target="_top">Google.be</a> et que placé dans une chaine avec file_get_contents()';

    $motif='`<a href="[^>]+">[^<]+</a>`';
    preg_match_all($motif,$chaine,$out);

    $count=count($out[0]);

    for(
    $i=0;$i<$count;$i++)
    {
    echo
    $out[0][$i],'<br/>';
    }
    ?>
    Exemple d'utilisation de preg_match_all permettant de récupérer des lien <a href dans une chaine.
    En utilisant file_get_contents() qui place le contenu d'une page dans une chaine, on peut matcher tous les liens contenu par exemple.

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

Discussions similaires

  1. Compréhension Pattern Factory Method
    Par Invité dans le forum Design Patterns
    Réponses: 8
    Dernier message: 27/07/2013, 15h42
  2. [DAO] Compréhension du pattern
    Par huit_six dans le forum Design Patterns
    Réponses: 3
    Dernier message: 05/10/2010, 16h45
  3. Réponses: 4
    Dernier message: 24/02/2009, 13h06
  4. [langage] expression reguliere motif répétitif dans 1 pattern
    Par comme de bien entendu dans le forum Langage
    Réponses: 11
    Dernier message: 09/04/2003, 17h14
  5. Problème de compréhension des ensembles
    Par Cornell dans le forum Langage
    Réponses: 6
    Dernier message: 07/02/2003, 23h07

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