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 :

extraire des données d'un code HTML [Fait]


Sujet :

Langage PHP

  1. #1
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut extraire des données d'un code HTML
    Je cherche un moyen simple de récupérer une chaîne de caractère dans le code de la page en cours avant d'en faire autre chose à l'aide des expressions régulières.

    Donc j'ai une page avec du code HTML et je voudrais récupérer par exemple le contenu d'une balise, comment je fais à parser le doc ?

    merci d'avance
    -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
    Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
    Pensez également à cocher

    Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

    Dimension Internet

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Salut,

    Tu peux par exemple, récupérer tout ce qui est du début de la balise à la fin du fichier (avec substr et strpos) puis tu récupères ensuite tout de puis la fin de la baliser d'ouverture (>) à la balise de fermeture (</tagname>) Ainsi tu auras le contenu de ta balise...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 125
    Points : 149
    Points
    149
    Par défaut
    Salut,

    Voici une fonction qui circule sur le Net pour extraire des balises de lien vers d'autres url. Tu peux très facilement l'adapter pour extraire autre chose de ta page.
    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
    28
    29
    30
     
      function extractLinks($url) { 
        $remote = fopen($url, 'r'); 
        $html = fread($remote, 1048576); 
        fclose($remote); 
     
        $urls = '(http|file|ftp)'; 
        $ltrs = '\w'; 
        $gunk = '/#~:.?+=&%@!\-'; 
        $punc = '.:?\-'; 
        $any = "$ltrs$gunk$punc"; 
        preg_match_all("{ 
                          \b 
                          $urls   : 
                          [$any] +? 
     
     
                          (?= 
                            [$punc] * 
                            [^$any] 
                          | 
                            $ 
                          ) 
                      }x", $html, $matches); 
        printf("Output of URLs %d URLs<P>\n", sizeof($matches[0])); 
        foreach ($matches[0] as $u) { 
          $link = $PHP_SELF . '?url=' . urlencode($u); 
          echo "<A HREF='$link'>$u</A><BR>\n"; 
        } 
      }

  4. #4
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    Merci de vos réponses qui vont me servir, mais moi ce que je voulais surtout c'était savoir comment faire en sorte (•d'une manière simple•) que le code HTML soit considere comme du texte...

    J'ai deja des idées mais je voudrais le truc le plus simple pour pouvoir lire le code courant de la page.
    Vous voyais ce que je veux dire j'espère...
    -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
    Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
    Pensez également à cocher

    Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

    Dimension Internet

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 125
    Points : 149
    Points
    149
    Par défaut
    pouvoir lire le code courant de la page.
    C'est exactement ce que fait la fonction extractLinks. Elle lit le contenu de la page dans la variable $html.

    La lecture d'un fichier se fait comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $fd = fopen( "mon_fichier.txt", "r" );
    $contents = fread( $fd, filesize( $filename ) );
    fclose( $fd );
    La lecture d'un fichier sur une url:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $remote = fopen($url, 'r'); 
    $html = fread($remote, 1048576); 
    fclose($remote);

  6. #6
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    OUPS désolé j'étais pas frais sur ce coup la.Je n'avais pas regardé...
    Merci beaucoup de ta réponse.

    -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
    Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
    Pensez également à cocher

    Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

    Dimension Internet

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

Discussions similaires

  1. Extraire des données d'un fichier html
    Par marco056 dans le forum Général Python
    Réponses: 9
    Dernier message: 02/07/2013, 20h38
  2. Réponses: 3
    Dernier message: 14/01/2010, 22h30
  3. Réponses: 2
    Dernier message: 06/04/2009, 16h44
  4. extraire des données d'un code hmtl
    Par tatiana20 dans le forum Langage
    Réponses: 7
    Dernier message: 13/01/2009, 13h07
  5. [RegEx] Comment extraire des données d'une page HTML ?
    Par taliesin26 dans le forum Langage
    Réponses: 1
    Dernier message: 11/12/2006, 12h39

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