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 :

Récupérer le contenu du <body> d'une page HTML [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 57
    Points : 40
    Points
    40
    Par défaut Récupérer le contenu du <body> d'une page HTML
    Bonjour,

    J'ai un petit soucis de compréhension au sujet de l'une de mes regexp.
    Je cherche à parser une page HTML pour récupérer le contenu du <body>

    J'ai également vu ce topic qui traite de ce sujet:
    http://www.developpez.net/forums/d10...body-page-web/


    Tout d'abord, pour réaliser cette opération j'ai créé la regexp ci-dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $body = preg_replace('`<body[^>]*>(.*)</body>`isU','$1',$page);

    mais il a fallu que je fasse la regexp suivante pour obtenir le bon résultat.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $body = preg_replace('`.*<body[^>]*>(.*)</body>.*</html>`isU','$1',$page);
    Cependant, je ne comprends pas pourquoi ma première regexp n'était pas valide
    Vous auriez des éléments de réponse ?

  2. #2
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    la fonction "preg_replace" sert à faire des remplacement à l'aide d'expressions régulières
    si tu veux juste récupérer une partie de texte, utilise la fonction http://php.net/preg_match

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 57
    Points : 40
    Points
    40
    Par défaut
    oui c'est tout à fait vrai c'est d'ailleurs ce que j'ai fait entre temps, par contre ca ne m'indique toujours pas pourquoi je récupère même le contenu après le </body> avec ma 1ere regexp alors que j'utilise bien l'option U "non gourmande"

  4. #4
    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
    Dans ta premiere expression tu demandes de remplacer "<body>contenu<body>" par "contenu".

    S'il y a des choses en dehors de ce schéma, ils ne sont pas remplacés.

    "non-greedy" cela signifie que le schéma s'applique a la plus petite chaine correspondant.
    "greedy" signifie au contraire qu'il va chercher la plus grande chaine correspondant.

    Par exemple si je cherche u(.*)u dans u chaine1 u chaine2 u
    en mode greedy j'aurais "chaine1 u chaine2"
    en mode non-greedy j'aurais "chaine1" et "chaine2"

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 57
    Points : 40
    Points
    40
    Par défaut
    je comprends mieux

    pour ceux que ca interresse voici le code utilisé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    preg_match('`<body[^>]*>(.*)</body[^>]*>`isU', $page, $matches);
    $body = $matches[1];
    merci à vous 2

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/01/2009, 20h31
  2. Récupérer le contenu d'un fichier texte dans une variable
    Par heureactuelle dans le forum MATLAB
    Réponses: 2
    Dernier message: 17/05/2008, 15h10
  3. Récupérer le code d'une page html contenue dans un balise object sous I
    Par olivier21c dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/05/2008, 16h48
  4. Récupérer le contenue d'un div d'une page HTML
    Par avogadro dans le forum Windows Forms
    Réponses: 1
    Dernier message: 10/09/2007, 09h25
  5. Récupérer contenu d'une page HTML
    Par ArHacKnIdE dans le forum Langage
    Réponses: 9
    Dernier message: 07/11/2006, 08h56

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