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 contenu d'une page HTML


Sujet :

Langage PHP

  1. #1
    Membre extrêmement actif
    Avatar de ArHacKnIdE
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 947
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 947
    Points : 1 921
    Points
    1 921
    Par défaut Récupérer contenu d'une page HTML
    Bonjour à Tous,

    J'ai trouvé ce code sur internet, qui doit permettre de sauvegarder le contenu d'une page html :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
     
        $file = fopen ($url,"r");
        if (!$file) {
            return null;
        }
        $doc = "";
        while (!feof ($file))
           $doc .= fgets ($file, 1024);
        fclose($file);
        return $doc;
     
    ?>
    Hors lorsque je l'execute, par exemple :

    monfichier.php?url=http://monsite.fr/mapage.html
    J'ai une erreur :

    Multiple Choices
    The document name you requested (/monsite/test3.php&url=http://monsite.fr/mapage.html) could not be found on this server. However, we found documents with names similar to the one you requested.
    Available documents:

    /upload/test3.php//monsite.fr/mapage.html (common basename)
    Merci de toute aide...

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    La valeur de la variable url doit certainement être encodée (fonction urlencode) car elle possède des caractères spéciaux. Une fonction de décodage analogue existe pour faire le travail inverse (urldecode).


    Julp.

  3. #3
    Membre extrêmement actif
    Avatar de ArHacKnIdE
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 947
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 947
    Points : 1 921
    Points
    1 921
    Par défaut
    Merci alors j'ai tenté ça :

    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
    <?
     
     
    	 $file = fopen (urlencode("...monsite\mapage.html"),"r");
      	  if (!$file) {
        	    return null;
    		    }
      	  $doc = "";
      	  while (!feof ($file)) 
    {
      	$doc = fgets ($file, 1024);
    	fichier=fopen("ma_new_page.html","a");
    	fputs("$fichier", "$doc");
    }	
     
        fclose($file);
        fclose($fichier);
     
     
    ?>
    Cela me créé bien mon fichier ma_new_page.html mais vide

    Merci pour votre aide...

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    A l'appel de votre fonction ou dans votre fonction vous devriez faire appel à urldecode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $resultat = nom_fonction(urldecode($_GET['url']));
    // ou
    fonction ma_fonction($url) {
        // [...]
        $url = urldecode($url);
        // [...]
    }
    Par contre si le lien est généré avec PHP, là il faudrait utiliser urlencode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $page = 'http://monsite.fr/mapage.html';
    echo '<a href="monfichier.php?url=' . urlencode($page) . '">...</a>';

    Julp.

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Je profite de sujet pour souligner que vous pouvez aussi utiliser la librairie libcurl qui permet de lire assez aisément le contenu d'une page web (je pense même que c'est plus rapide que c'est plus propre que fopen).
    Bonne journée.

  6. #6
    Membre extrêmement actif
    Avatar de ArHacKnIdE
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 947
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 947
    Points : 1 921
    Points
    1 921
    Par défaut
    Citation Envoyé par Raideman
    Je profite de sujet pour souligner que vous pouvez aussi utiliser la librairie libcurl qui permet de lire assez aisément le contenu d'une page web (je pense même que c'est plus rapide que c'est plus propre que fopen).
    Bonne journée.
    Merci pour vos réponses.

    En cherchant sur Google, je n'ai pas trouvé aucun exemple de manipulation de cette librairie

    Pourrait tu m'éclairer un peu plus ?

    Merci

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par ArHacKnIdE
    En cherchant sur Google, je n'ai pas trouvé aucun exemple de manipulation de cette librairie
    Il y en a un exemple dans la FAQ et quelques posts sur cette librairie dans les forums PHP.


    Julp.

  8. #8
    Membre extrêmement actif
    Avatar de ArHacKnIdE
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 947
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 947
    Points : 1 921
    Points
    1 921
    Par défaut
    cURL présente les avantages d'être plus facile à utiliser et de pouvoir accéder à un "fichier" par son URL indépendamment de la valeur de la directive allow_url_fopen (ce qui n'est pas le cas de fopen, file, file_get_contents, ...). Il faut, toutefois, qu'elle soit installée.
    Exemple d'utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $ch = curl_init('http://www.developpez.com');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_NOBODY, FALSE);
    //curl_setopt($ch, CURLOPT_HEADER, TRUE) ; // Pour obtenir en plus les en-têtes 
    $response = curl_exec($ch);
    curl_close($ch);
    echo $response;
    Merci beaucoup, mais comment je fais pour installer cette librairie sur mon serveur ?

    Je ne comprends pas trop la fonction du script présenté ci-dessus...

    Merci encore.

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Tout dépend du système d'exploitation (Windows ou Unix-like) et des droits que vous possédez sur ce dernier. Pour windows, vous pouvez certainement trouver cette extension sous "forme binaire dynamique" (dll).


    Julp.

  10. #10
    Membre extrêmement actif
    Avatar de ArHacKnIdE
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 947
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 947
    Points : 1 921
    Points
    1 921
    Par défaut
    Citation Envoyé par julp
    Tout dépend du système d'exploitation (Windows ou Unix-like) et des droits que vous possédez sur ce dernier. Pour windows, vous pouvez certainement trouver cette extension sous "forme binaire dynamique" (dll).


    Julp.
    Merci mais c'est Unix.

    Je crois que je vais laisser tomber cette technique et chercher autre chose.

    Encore Merci à vous.

Discussions similaires

  1. Récupérer le contenu d'une page html
    Par kerma dans le forum C#
    Réponses: 2
    Dernier message: 18/08/2009, 11h30
  2. activer avec vba un lien hypertexte contenu dans une page html
    Par epaminondas dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/05/2008, 10h55
  3. Récuperer le contenu d'une page html sans les balises.
    Par ilalaina dans le forum Windows Forms
    Réponses: 4
    Dernier message: 09/04/2008, 13h47
  4. [AJAX] Recupérer le contenu d'une page html
    Par tenev911 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/03/2007, 00h25
  5. Réponses: 5
    Dernier message: 30/11/2005, 09h48

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