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 html via PHP


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 35
    Points : 19
    Points
    19
    Par défaut Lire le contenu d'une page html via PHP
    Bonjour à tous,

    J'aimerais écrire un script qui permettrait de lire le contenu d'une page html externe et de le sortir en echo.

    Je connais file_get_contents, fread, etc. mais malheureusement ce n'est pas si simple dans mon cas. Je m'explique :

    Voici le code html de la page externe :
    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
    <div id="container"></div>
     
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
     
    <script type="text/javascript">
        var siteName = 'noobzance';
        $.getJSON(
        	'http://search.twitter.com/search.json?callback=?&rpp=4&q=from:' + siteName,
        	function(data) {
        		$.each(data, function(i, tweets) {
    				for(var num = 0; num < tweets.length; num++) {
    					if(tweets[num].text !== undefined) {
    						$('#container').append(tweets[num].text);
    					}
    				}
        		});
        	}
        );
    </script>
    Et ce que j'obtiens en visuel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Check bien la noobzance ! test 4 but what about a third test? and another test woot
    J'aimerais maintenant injecter ce résultat dans une page php. J'ai essayé avec include, fread, file_get_contents, stream_file_contents, le résultat est toujours pareil : j'obtiens bien le visuel souhaité mais quand je regarde le code source, je vois ceci :
    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
    <div id="container"></div>
     
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
     
    <script type="text/javascript">
        var siteName = 'noobzance';
        $.getJSON(
        	'http://search.twitter.com/search.json?callback=?&rpp=4&q=from:' + siteName,
        	function(data) {
        		$.each(data, function(i, tweets) {
    				for(var num = 0; num < tweets.length; num++) {
    					if(tweets[num].text !== undefined) {
    						$('#container').append(tweets[num].text);
    					}
    				}
        		});
        	}
        );
    </script>
    C'est-à-dire le code source du fichier HTML externe. Or, je ne le veux pas!

    Y a-t-il un moyen de ne sortir que le visuel final ET avoir un code source comme celui ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Check bien la noobzance ! test 4 but what about a third test?a nd another test woot
    sans les balises javascript et html?

    Ou alors, injecter le résultat dans un fichier texte et réinjecter ce visuel via include? Dans ce cas, le code source sera simplement le visuel final.

    Holala, j'espère que c'est clair...

  2. #2
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 35
    Points : 19
    Points
    19
    Par défaut
    Je suis finalement parvenu à faire ce que je voulais.

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <?php
    header('Content-type: text/html; charset=UTF-8');
    ?>
    <body onLoad="document.getElementById('formulaire').submit()">
     
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
     
    <script type="text/javascript">
        var siteName = 'noobzance';
        $.getJSON(
        	'http://search.twitter.com/search.json?callback=?&rpp=4&q=from:' + siteName,
        	function(data) {
        		$.each(data, function(i, tweets) {
    				for(var num = 0; num < tweets.length; num++) {
    					if(tweets[num].text !== undefined) {
    						$('#container').append(tweets[num].text);
    					}
    				}
        		});
        	}
        );
    </script>
     
    <form onsubmit = "return false" style="display:none" name="formulaire" id="formulaire" action="" method="post">
    <textarea type="hidden" name="container" id="container" cols="1" rows="1"></textarea>
    </form>
     
    <?
    $texte = fopen ("content.txt" , "w");
     
    fputs ($texte , "content=");
     
    $texte = fopen ("content.txt" , "a+");
     
    fputs ($texte , $_POST['container']);
     
    fclose ($texte);
     
    include('flash.html');
    ?>
    Explications :

    Comme je l'ai déjà expliqué, le script JS génère les dernières mies à jour effectuées sur le site Twitter.
    J'ai choisi de placer le contenu de ces mises à jour dans un textarea.
    Le formulaire de ce textarea est en style hidden, il est donc invisible au visiteur.
    Grâce au body onLoad, il y a un submit automatique.
    L'action de ce submit est en action="" et un code php en fputs suit le formulaire.
    J'insère le contenu du textarea dans un fichier texte avec la fonction fputs.
    Ce fichier texte est injecté dans un swf.
    Ce swf est inséré dans la page via la fonction include.

    Ouf! Ca c'est fait.

    Le problème maintenant c'est que la page se recharge indéfiniment vu que le formulaire est en action="".

    Y a-t-il un moyen d'éviter ce rechargement?

Discussions similaires

  1. [MySQL] Afficher le contenu d'une page HTML via du PHP
    Par loic20h28 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 02/01/2012, 13h34
  2. Lire le contenu d'une page html via PHP
    Par laure07 dans le forum Langage
    Réponses: 8
    Dernier message: 25/11/2010, 11h35
  3. Réponses: 6
    Dernier message: 12/06/2006, 20h03
  4. Réponses: 5
    Dernier message: 30/11/2005, 09h48
  5. 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

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