Comment lire le contenu d'une page web ?

Résolu
Signaler
Messages postés
150
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
17 mars 2009
-
Messages postés
150
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
17 mars 2009
-
Bonjour,

je cherche comment lire le contenu d'une page web distante avec PHP, sachant que je n'ai aucune autorisation sur cette page à part la lire.

J'ai tenté d'utilisé la fonction file() en l'utilisant de cette façon:

$contenu = file("http://www.unsite.com/pageweb.html");



mais PHP semble "planter" sur la ligne. Il ne m'affiche aucune erreur
(j'ai un hébergement pro chez lycos et il ne m'affiche pas toujours les
erreurs...).



J'ai ensuite essayé la fonction fopen en mode lecture mais elle semble planter aussi.

J'arrive cependant à lire des fichiers en local avec file().



Merci de votre aide.

15 réponses

Messages postés
196
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
2 septembre 2005

ton code était bon au départ, mais ton hébergeur ne veux pas - pour des
raisons de sécurité - que tu puisses télécharger un fichier... la
solution à ton problème serait de changer d'hébergeur ...
Messages postés
196
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
2 septembre 2005

change file par readfile pou voir ?
Messages postés
150
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
17 mars 2009

readfile ne marche pas non plus.





PS : je teste avec l'adresse de google:

$r = readfile("http://www.google.fr/");

Merci de prendre du temps pour m'aider.
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Salut,



fopen() ou encore fsockopen()

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
150
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
17 mars 2009

Je viens de tester fopen:

$r = fopen("http://www.google.fr/", "r");
et php semble "planter".



Mais lorsque j'essaye avec fsockopen() avec le code test suivant trouvé dans la doc de php:

$fp = fsockopen("http://www.google.fr", 80, $errno, $errstr, 30);

if (!$fp) {

echo "$errstr ($errno)
\n";



} else {;

$out = "GET / HTTP/1.1\r\n";

$out .= "Host: www.google.frr\n";

$out .= "Connection: Close\r\n\r\n";



fwrite($fp, $out);

while (!feof($fp)) {

echo fgets($fp, 128);

}

fclose($fp);

}



J'ai une erreur: "Unable to find the socket transport "http" - did you forget to enable it when you configured PHP? (4) " mais php ne plante pas.
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
ne mets pas http:// devant

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
196
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
2 septembre 2005

première chose à faire :

<?Error_Reporting(E_ALL);?>



chez un membres.lycos t'aurais obtenu :





Warning: fsockopen, pfsockopen, show_source, php_uname, ini_get,
ini_alter, ini_restore, ini_set, getrusage, mysql_list_dbs,
get_current_user, set_time_limit, getmyuid, getmypid, dl, leak, listen,
chown, chmod, chgrp, realpath, tmpfile, link, mb_send_mail() has been
disabled for security reasons in /data/members/free/multimania/fr/a/b/c/... on line 5





Warning: Readfile(): URL file-access is disabled in the server configuration



Warning: file(): URL file-access is disabled in the server configuration
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
ah oui c'est vrai que t'es chez lycos... Change d'hébergeur, c'est la première chose à faire ^^

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
150
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
17 mars 2009

Voilà ce qu'il me sort quand j'utilise

$r = file("http://www.google.fr");





Warning: file() [function.file]: Unable to access www.google.fr in /data/members/paid/m/e/mesdevoirs.net/htdocs/www/choix/telechargement.php5 on line 55



Warning: file(www.google.fr) [function.file]: failed to open stream: No such file or directory in /data/members/paid/m/e/mesdevoirs.net/htdocs/www/choix/telechargement.php5 on line 55
Messages postés
150
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
17 mars 2009

Mais ne n'ai pas l'hébergement gratuit, j'ai l'hébergement pro, c'est pas exactement la même chose...


Ci dessus je me suis trompé, je n'ai l'erreur que quand je ne me pas le http:// sinon je n'ai rien du tout et PHP plante.
Messages postés
196
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
2 septembre 2005

il faut mettre http:// devant !
Messages postés
196
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
2 septembre 2005

désolé pour les deux messages ci-dessus ... tu m'as "grillé" !
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Il ne faut pas mettre "http://" dans le fsockopen...

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
150
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
17 mars 2009

Merci, je vais demander à lycos s'il ne peuvent pas m'activer cette fonction...
Messages postés
150
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
17 mars 2009

Merci à vous deux pour m'avoir aidé.