CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Récupérer le contenu d'une page web(php)

Espentor
Espentor
Niveau 6
12 avril 2004 à 15:31:36

Salut, voila, je cherche un moyen de récupérer en php le code source d´une page web afin d´effectuer un certain nombre de traitement dessus.

J´ai essayé avec un fopen("http://url de la page","r"); ( puis bon while ! feof blabla pour récupérer le contenu) mais soit ca m´ouvre une page vide, soit ca me sort uniquement des petits bouts de code source d´une page.

Par exemple un fopen("http://www.google.fr","r" );
Me renvoie ce code source
< a href=http://www.google.com/ncr&gt;Google.com in English</a></font><p><font size=-2>©2004 Google - Nombre de pages Web recensées par Google : 4,285,199,774.</font></p></center></body></html>

Existe t´il un moyen de faire cela ? ou alors est ce que le probleme vient de mon url.

watzakamikaze1
watzakamikaze1
Niveau 2
12 avril 2004 à 17:17:09

Suis pas sur, mais je crois que c´est parce que le php est interprété par le serveur et donc, est traduit en html, a moins que tu n es un lien directe vers la apge en php(et si il n y a pas ht-acces.ht-acces)

watzakamikaze1
watzakamikaze1
Niveau 2
12 avril 2004 à 17:18:30

oups, g dit une connerie avais pas pige ^ ^
en fait je c pas :lol:

mais ca doit venir du printage sur le final html
^ ^

mais, bo, c suis pas sur
:lol:

Golden_Pourri
Golden_Pourri
Niveau 10
12 avril 2004 à 18:34:04

Si t´es pas sur faudrait plus te la fermer.....

buz-l-orage
buz-l-orage
Niveau 10
12 avril 2004 à 19:09:07

it´s not possible

jarose
jarose
Niveau 10
13 avril 2004 à 03:57:21

C´est tout à fait possible.

Un autre moyen ? Biensur, tu utilises une socket, et tu te sers du protocole HTTP.
De toute manière, il est préférable de procéder de cette façon.

Déjà, je te recommande d´utiliser l´interface fsockopen, qui est la plus générique en PHP.
Sock_* est une implémentation de bas niveau, et inutile dans le cas présent. ( C´est quasi la même chose qu´en C/UNIX)

Exemple du man:

/ **/
< ?php
$fp = fsockopen("www.php.net", 80, &$errno, &$errstr, 30);
if(!$fp) {
. ... echo " $errstr ( $errno)<br>\n";
} else {
. ... fputs($fp,"GET / HTTP/1.0\n\n");
. ... while(!feof($fp)) {
. ... . .. echo fgets($fp,128);
. ...}
fclose($fp);
}
? >
/ **/

´&´ Pour le passage de variable par référence.
´GET / HTTP/1.0´ est la commande à envoyer au serveur " www.php.net" sur le service du port 80, afin de recupérer le contenu de la page indexé sur le path ´/´.

Pour le reste, je t´invites à consulter par toi même le manuel :)

http://fr.php.net/manual/fr/function.fsockopen.php
http://abcdrfc.free.fr/rfc-vf/rfc1945.html

Espentor
Espentor
Niveau 6
13 avril 2004 à 07:58:32

Merci beaucoup jarose, m´en va tester ca de suite :-)

Scullder
Scullder
Niveau 10
13 avril 2004 à 17:31:14

jarose tu te compliques bien la vie, c´est faisable en une ligne avec
$page = implode("",file("http://www.google.fr" );

jarose
jarose
Niveau 10
13 avril 2004 à 18:26:48

Utiliser ´file()´ sans savoir ce que l´on fait, je n´appelle plus ça programmer. Oui le protocole HTTP est semi-géré par PHP, mais y´a rien d´instructif à utiliser des fonctions telle que file ou fopen pour s´en servir. Car la seule chose que l´on peut faire avec, c´est d´envoyer la commande ´GET´.

Tandis " qu´à la main", il est possible de rajouter des requettes, d´établir un dialogue avec le serveur, etc.

Donc non, je ne me complique pas la vie... je programme.

Libre à toi de faire des programmes en 2 lignes sans savoir ce qu´il se passe derrière.

jarose
jarose
Niveau 10
13 avril 2004 à 18:31:43

De toute façon, je n´ai fait que lui proposer une autre solution ( qui est la meilleure), comme il l´avait si bien demandé.

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment