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 :

Analyse de code html [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 153
    Points : 48
    Points
    48
    Par défaut [RESOLU] Analyse de code html
    Bonjour,

    Avec PHP j'ouvre un fichier de l'un de mon répertoire.

    Il contient entre autre :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <title>Confirmation</title>
    <br><img src='http://www.site.com/mailingstat.php?mail=gilsonl@hotmail.com' width='1' height='1' border='0'/>


    En faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $titre = ereg("<title>(.*)</title>",$page,$regs); 
    echo $regs[1];
    Cela m'affiche bien "Confirmation".

    Cependant, en faisant : (ce que je souhaite)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $titre = ereg("http://www.site.com/mailingstat.php?mail=(.*)' width='1' height='1' border='0'",$page,$regs); 
    echo $regs[1];
    Cela ne m'affiche rien !!! Alors que je souhaite récupérer l'adresse mail...

    Pouvez vous m'aider ?

    Merci !

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    il faudrait utiliser preg_match avec le modificateur "s" pour le multiligne.
    ereg est obsolète.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 153
    Points : 48
    Points
    48
    Par défaut
    Merci beaucoup, preg_match fonctionne en effet mieux !!

  4. #4
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Points : 1 658
    Points
    1 658
    Par défaut
    Bonjour,


    Si tu obtiens un résultat correct avec
    "<title>(.*)</title>"
    c'est que tu ne travailles pas avec PHP 6.0.0 à partir duquel ereg() a été supprimée.
    Il n'est donc pas logique que tu n'obtiennes pas de résultat avec l'autre pattern.

    Je pense que c'est tout simplement dû au fait que '?' est un métacaractère: 'php?mail' signifie donc qu'entre 'ph' et 'mail' il doit y avoir un nombre quelconque de 'p' ou aucun caractère, ce qui n'est pas du tout la séquence 'p?' qui s'y trouve en réalité.

    En échappant le '?' , l'expression avec ereg() devrait matcher correctement d'après moi.

    Soit dit en passant, le point est aussi un métacarcatère et il matche les caractères point comme n'importe quels autres, mais en toute rigueur il faut les échapper aussi dans la RE (sauf dans (.*) , évidemment).

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 153
    Points : 48
    Points
    48
    Par défaut
    Merci pour ces précisions.

    Je m'en suis sorti avec :

    preg_match("/mail=([^']*)/", $page, $regs);

    Cependant j'ai un autre souci depuis :
    http://www.developpez.net/forums/d88...rs-repertoire/

    Merci beaucoup et bon dimanche à tous !

  6. #6
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Points : 1 658
    Points
    1 658
    Par défaut
    Merci pour ces précisions.
    Mais j'aurais bien aimé avoir confirmation que l'échappement du '?' était bien ce qui manquait.

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

Discussions similaires

  1. [RegEx] Analyse de code HTML d'une liste déroulante
    Par sigmoun dans le forum Langage
    Réponses: 7
    Dernier message: 19/08/2009, 13h57
  2. [RegEx] Analyser du code html
    Par Invité dans le forum Langage
    Réponses: 1
    Dernier message: 05/08/2009, 20h38
  3. [MySQL] Analyse de code HTML
    Par safari25 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 12/06/2009, 17h06
  4. Analyse de code HTML et simplification par l'XML
    Par Punky65250 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 10/11/2005, 10h24
  5. Analyse de code HTML en réponse a une requête post.
    Par ghost942 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 04/06/2005, 21h40

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