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 :

Lire le contenu d'une page Web


Sujet :

Langage PHP

  1. #1
    Membre actif
    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : développeur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2004
    Messages : 479
    Points : 281
    Points
    281
    Par défaut Lire le contenu d'une page Web
    Bonjour,

    Le sujet paraît simple, mais...

    Pour lire le contenu d'une page web, il y a bien sûr :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    fopen("http://www.monsite.com", "r");
    $contenu = file("http://www.monsite.com");
    On a donc dans $contenu toutes les lignes de la page concernée.
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <div id="calendrierGlobal" >
    								<ul id="calendrier">
    									<li id="calprev"></li><li id="calcours" >Février<ul><li id="cal1L1"><a href="/programmes/01022010/index.html"  class=" first" >1</a></li><li id="cal1L2"><a href="/programmes/02022010/index.html"  class="" >2</a></li><li id="cal1L3"><a href="/programmes/03022010/index.html"  class="" >3</a></li><li id="cal1L4"><a href="/programmes/04022010/index.html"  class="" >4</a></li><li id="cal1L5"><a href="/programmes/05022010/index.html"  class="" >5</a></li><li id="cal1L6"><a href="/programmes/06022010/index.html"  class="" >6</a></li><li id="cal1L7"><a href="/programmes/07022010/index.html"  class=" last" >7</a></li><li id="cal2L1"><a href="/programmes/08022010/index.html"  class=" first" >8</a></li><li id="cal2L2"><a href="/programmes/09022010/index.html"  class="" >9</a></li><li id="cal2L3"><a href="/programmes/10022010/index.html"  class="" >10</a></li><li id="cal2L4"><a href="/programmes/11022010/index.html"  class="" >11</a></li><li id="cal2L5"><a href="/programmes/12022010/index.html"  class="" >12</a></li><li id="cal2L6"><a href="/programmes/13022010/index.html"  class="" >13</a></li><li id="cal2L7"><a href="/programmes/14022010/index.html"  class=" last" >14</a></li><li id="cal3L1"><a href="/programmes/15022010/index.html"  class=" first" >15</a></li><li id="cal3L2"><a href="/programmes/16022010/index.html"  class="" >16</a></li><li id="cal3L3"><a href="/programmes/17022010/index.html"  class="" >17</a></li><li id="cal3L4"><a href="/programmes/18022010/index.html"  class="" >18</a></li><li id="cal3L5"><a href="/programmes/19022010/index.html"  class="" >19</a></li><li id="cal3L6"><a href="/programmes/20022010/index.html"  class="" >20</a></li><li id="cal3L7"><a href="/programmes/21022010/index.html"  class=" last" >21</a></li><li id="cal4L1"><a href="/programmes/22022010/index.html"  class=" first" >22</a></li><li id="cal4L2"><a href="/programmes/23022010/index.html"  class="" >23</a></li><li id="cal4L3"><a href="/programmes/24022010/index.html"  class="" >24</a></li><li id="cal4L4"><a href="/programmes/25022010/index.html" class="active " ><strong>25</strong></a></li><li id="cal4L5"><a href="/programmes/26022010/index.html"  class="" >26</a></li><li id="cal4L6"><a href="/programmes/27022010/index.html"  class="" >27</a></li><li id="cal4L7"><a href="/programmes/28022010/index.html"  class=" last" >28</a></li><li id="cal5L1"><span></span></li><li id="cal5L2"><span></span></li><li id="cal5L3"><span></span></li><li id="cal5L4"><span></span></li><li id="cal5L5"><span></span></li><li id="cal5L6"><span></span></li><li id="cal5L7"><span></span></li><li id="cal6L1"><span></span></li><li id="cal6L2"><span></span></li><li id="cal6L3"><span></span></li><li id="cal6L4"><span></span></li><li id="cal6L5"><span></span></li><li id="cal6L6"><span></span></li><li id="cal6L7"><span></span></li></ul></li><li id="calback"><a  onclick="return loadCalendar('01032010')"><abbr title="Mois suivant"><img src="/pmu/img/design/calendrier/calendrier_next.gif" alt="Mois suivant" width="12" height="11" /></abbr></a></li>
     
    								</ul>
    							</div>
    .....
    On peut alors parcourir le tableau $contenu et dérouler le code selon certains tests.
    Ces tests portent souvent sur la chaîne de caractères.
    On voit bien dans l'exemple ci-dessus que pour extraire des données de la chaîne, pour chacune des lignes, on a un cas particulier.
    Pour plusieurs centaines de lignes, même avec les expressions régulières, ça devient vite ingérable.

    Par contre, lorsqu'on a un fichier qui contient un copier/coller du rendu de la page web, ça devient tout de suite plus facile :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Février
     
        * 1
        * 2
        * 3
        * 4
        * 5
        * 6
        * 7
        * 8
        * 9
        * 10
        * 11
    Ma question :

    Comment récupérer le contenu d'une page web non pas sous la forme de son codage html mais sous la forme du rendu à l'écran ?

  2. #2
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Citation Envoyé par senacle
    Comment récupérer le contenu d'une page web non pas sous la forme de son codage html mais sous la forme du rendu à l'écran ?
    Je vois pas très bien ce que tu veux dire là. il te manque peut être les feuilles de styles associées ?

  3. #3
    Membre actif
    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : développeur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2004
    Messages : 479
    Points : 281
    Points
    281
    Par défaut
    Je veux simplement la forme texte de la page web sans les balises html.

    Autre exemple avec balise :

    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
     
    <h1 class="TitreSection0" id="L5">5. Conclusion</h1>
     
    			<br><h2 class="TitreSection1" id="L5.1">5.1. Epilogue</h2>
     
    				<div class="paragraph">
    					J'espère vous avoir convaincu d'utiliser à votre tour l'extension
    					cURL à la fois pour sa simplicité et sa souplesse dans la prise en
    					charge des différents protocoles qu'elle est capable de gérer.
    				</div><br>
     
    				<div class="paragraph">
    					Cependant ceux qui n'ont pas la chance de profiter de son support
    					(information que vous pouvez obtenir via la sortie de phpinfo)
    					devront se tourner vers des alternatives comme fsockopen ou plus
    					simplement vers les traditionnelles fonctions de lecture de fichiers
    					comme file_get_contents et fopen, fread/fwrite, fclose mais requiert
    					que la directive <b>allow_url_fopen</b> soit à On (elles prennent
    					habituellement en charge les protocoles HTTP et FTP).
    				</div><br>
    				<div class="titreliste">Liens Developpez :</div><ul style="list-style-type: disc;">
    					<li><img src="http://www.developpez.be/images/kitfr.jpg" alt="fr">&nbsp;<a href="http://mathieu-lemoine.developpez.com/tutoriels/web/http/" class="lienArticle">Le protocole HTTP</a></li>
    				</ul>
    				<div class="titreliste">Liens externes :</div><ul style="list-style-type: disc;">
     
    					<li><img src="http://www.developpez.be/images/kitfr.jpg" alt="fr">&nbsp;<a href="http://fr.php.net/curl" class="lienArticle">Documentation officielle de l'extension cURL</a>
    sans balise
    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
     
    5. Conclusion
     
    5.1. Epilogue
    J'espère vous avoir convaincu d'utiliser à votre tour l'extension cURL à la fois pour sa simplicité et sa souplesse dans la prise en charge des différents protocoles qu'elle est capable de gérer.
     
    Cependant ceux qui n'ont pas la chance de profiter de son support (information que vous pouvez obtenir via la sortie de phpinfo) devront se tourner vers des alternatives comme fsockopen ou plus simplement vers les traditionnelles fonctions de lecture de fichiers comme file_get_contents et fopen, fread/fwrite, fclose mais requiert que la directive allow_url_fopen soit à On (elles prennent habituellement en charge les protocoles HTTP et FTP).
     
    Liens Developpez :
     
        * fr Le protocole HTTP
     
    Liens externes :
     
        * fr Documentation officielle de l'extension cURL

  4. #4
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Tu as strip_tags pour cela.

  5. #5
    Membre actif
    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : développeur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2004
    Messages : 479
    Points : 281
    Points
    281
    Par défaut
    Effectivement, je viens d'essayer, mais ça ne donne pas exactement ce que je souhaite.

    Il reste beaucoup de lignes inutiles :

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    				  M. ABRIVARD
     
     
                        2'32&quot;80
                        1'12&quot;80
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
        &nbsp;
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
              &nbsp;
              &nbsp;&nbsp;

Discussions similaires

  1. Lire le contenue d'une page web généré par Ajax
    Par icb3a dans le forum Web & réseau
    Réponses: 7
    Dernier message: 26/07/2010, 23h46
  2. [JSP][WEB] recuperer le contenu d'une page web
    Par ypikahe dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 14/03/2008, 10h10
  3. Lire le contenu d'une page web grâce à un script PHP
    Par BloodyImp dans le forum Langage
    Réponses: 3
    Dernier message: 06/11/2005, 22h29
  4. copier le contenu d'une page web dans un fichier texte
    Par wassila dans le forum C++Builder
    Réponses: 30
    Dernier message: 28/08/2005, 22h27
  5. Réponses: 2
    Dernier message: 16/07/2004, 09h30

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