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 :

preg_replace & expreg [RegEx]


Sujet :

Langage PHP

  1. #1
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut preg_replace & expreg
    Bonsoir,

    Pouvez-vous m'expliquer son fonctionnement et avec les expressions régulières ?

    Car je souhaite récuperer plusieurs informations dans un code html...Par exemple j'ai
    <html><table><tr><td>texte</td></tr><td>texte</td></tr><tr><td>Avec : texte à récuperer</td></tr></table></html>
    Et je souhaite juste récupérer le texte à récupérer comment fait-on ?

    Sinon j'ai aussi ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $texte = preg_replace('#<i>#', " ", trim($texte));
    $texte = preg_replace('#</i>#', " ", $texte);
    peut-on le faire en une seule ligne ?

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    SInon toujours personne pour m'éclairer sur ces expressions ?!

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Points : 60
    Points
    60
    Par défaut
    euh si ton but est de virer les balises, essaye ça ?:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $letexte=ereg_replace( "<[^>]+>","",$letexte);

    pour les explications,
    direction->google->expression reguliere tutoriaux
    ( ou peut-etre aussi developpez.com / cours ? )

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    pas seulement...Mon but est de récuperer uniquement une partie du code

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Points : 60
    Points
    60
    Par défaut
    quelle partie exactement ?

    qu'est-ce qui differencie cette partie des autres parties ?
    ( sans ça, personne ne pourra te donner "la regex" qui va bien )

  6. #6
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Par exemple j'ai ce code :
    <td colspan="2" valign="top">
    <h4><a href="/film/fichefilm_gen_cfilm=29276.html" class="link1"><b>Harry</b> <b>Potter</b> a l'ecole des sorciers</a></h4>

    <h5 style="color: rgb(102, 102, 102);">&nbsp;(<b>Harry</b> <b>Potter</b> and the Sorcerer's Stone)</h5>
    <h4><br></h4>
    <h4 style="color: rgb(102, 102, 102);"> de Chris Columbus</h4>
    <h4 style="color: rgb(102, 102, 102);">&nbsp;avec Daniel Radcliffe, Rupert Grint</h4>
    <h4 style="color: rgb(102, 102, 102);">&nbsp;(2001)</h4>
    </td>
    et je veux obtenir que le lien
    /film/fichefilm_gen_cfilm=29276.html

  7. #7
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Salut, si c'est juste récupérer une adresse de la balise <a>, tu peux aller voir ici : http://www.expreg.com/liresource.php?type=URL

    Ce site est très bien pour les expressions régulières et il donne certaines regexp toutes faites ; à mettre absolument dans tes favoris.

    Bon développement ;-)

  8. #8
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    La balise <a> n'est qu'un exemple y a d'autres info que je veux récupérer mais je me dis qu'il suffit de me montrer un exemple et le reste je pourrais faire

    Sinon ton lien ne fonctionne pas

  9. #9
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    salut,
    peut etre que ca pourra t aider :
    http://www.developpez.net/forums/viewtopic.php?t=435778

  10. #10
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Je ne vais ps trop pouvoir t'aider je suis très mauvais en expreg pour le moment.

    par contre tu peux essayer ce logiciel pour faire tes regexp

    http://www.weitz.de/regex-coach/#install

    http://www.weitz.de/regex-coach/#howto

    C'est basé sur des regexp perl, donc c'et un peu différent de celle du erg et preg en php, mais le principe est grosso modo le même et puis surtout tu testes en direct le résultat.

    bye

  11. #11
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    alors je commence à comprendre les expressions régulières mais certaines ne marchent pas comme celles-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match('#<td style="padding: 0pt 0pt 5px;" valign="top" width="100%"><img src=http://(.*?)" alt="" border="0">#', $infos, $data1);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match_all('#<a class="link1" href=".*?" target="">(.*?)</a>#', $infos, $data1);
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match('#<b>Synopsis</b>.*?<div align="justify"><h4>(.*?)</h4></div>#', $infos, $data1);
    qui sont censés récuperer l'url de l'image,le nom de chaque acteur et le synopsis dans ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    <td style="padding: 0pt 0pt 5px;" valign="top" width="100%"><img src="http://a69.g.akamai.net/n/69/10688/v1/img5.allocine.fr/acmedia/medias/nmedia/00/02/23/54/harrypotter.gif" alt="" border="0">
    <center><h4><a href="/film/poster_gen_cfilm=29276.html" class="link1">Acheter les affiches</a></h4><br><h5>(Beta)</h5></center>
    </td>
     
    <h4>Avec <a class="link1" href="/personne/fichepersonne_gen_cpersonne=61009.html" target="">Daniel Radcliffe</a>, <a class="link1" href="/personne/fichepersonne_gen_cpersonne=65004.html" target="">Rupert Grint</a>, <a class="link1" href="/personne/fichepersonne_gen_cpersonne=65003.html" target="">Emma Watson</a></h4><br>
     
    <h3><b>Synopsis</b></h3></td></tr></tbody></table>
    <table style="width: 100%;" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="padding: 5px 5px 0pt;" valign="top">
    <table style="padding: 0pt;" border="0" cellpadding="0" cellspacing="0" width="100%">
    <tbody><tr>
    	<td style="padding: 10px 0pt 0pt;" valign="top"><div align="justify"><h4>Harry
    Potter, un jeune orphelin, est élevé par son oncle Vernon et sa tante
    Pétunia qui le détestent. Alors qu'il était haut comme trois pommes,
    ces derniers lui ont raconté que ses parents étaient morts dans un
    accident de voiture.<br>
    Le jour de son onzième anniversaire, Harry reçoit la visite inattendue
    d'un homme gigantesque se nommant Rubeus Hagrid. Celui-ci lui révèle
    qu'il est en fait le fils de deux puissants magiciens et qu'il possède
    lui aussi d'extraordinaires pouvoirs.<br>
    C'est avec joie que le garçon accepte de suivre des cours à Poudlard,
    la célèbre école de sorcellerie. Il a enfin la chance de se faire des
    amis. Blâmé par le professeur Severus Rogue qui lui enseigne les
    potions et protégé par Albus Dumbledore, le directeur de
    l'établissement, Harry va tenter d'élucider le mystère de la pierre
    philosophale.</h4></div></td>
    </tr>
    PS : Ce sont des fragments de code
    Alors pouvez vous m'indiquez où ai-je fais une erreur ?!

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Points : 1 206
    Points
    1 206
    Par défaut

  13. #13
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    effectivement certains fonctionnent, j'ai même modifié en remplacant par des match_all...

    Mais l'image elle ne vient toujours pas et j'ai mis cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match('#<td style="padding: 0pt 0pt 5px;" valign="top" width="100%"><img src="(.*?)" alt="" border="0">#', $infos, $data1);

+ Répondre à la discussion
Cette discussion est résolue.

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