Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1295 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] récupérer le code source

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] récupérer le code source

n°1444883
hugoOo
laisse pas dépasser ton pixel
Posté le 19-09-2006 à 20:45:27  profilanswer
 

Salut tout le monde,
J'aimerai savoir quelle méthode peut on utiliser pour récupérer le code source d'une page web dans une variable php.
Merci deme dire si je suis pas clair :pt1cable:  
 :hello:


---------------
http://over-templates.c.la
mood
Publicité
Posté le 19-09-2006 à 20:45:27  profilanswer
 

n°1444888
CNeo
Posté le 19-09-2006 à 20:55:53  profilanswer
 

hugoOo a écrit :

Salut tout le monde,
J'aimerai savoir quelle méthode peut on utiliser pour récupérer le code source d'une page web dans une variable php.
Merci deme dire si je suis pas clair :pt1cable:  
 :hello:


Cherche sur le manuel php qui est très bien fait. Dans ton cas tu vas sûrement te tourner vers DOM.

n°1444890
hugoOo
laisse pas dépasser ton pixel
Posté le 19-09-2006 à 21:04:50  profilanswer
 

Salut, moi j'avai pensé a quelque chose de ce type :

Code :
  1. <?php 
  2. function getSource($url) {
  3. $file = fopen ($url,"r" );     
  4. if (!$file) {
  5. return null;
  6. }     
  7. $doc = "";     
  8. while (!feof ($file)) {
  9. $doc .= fgets ($file, 1024);     
  10. fclose($file);     
  11. return $doc; 
  12. }
  13. ?>


est-ce que c'est bon à votre avis?


---------------
http://over-templates.c.la
n°1444892
CNeo
Posté le 19-09-2006 à 21:09:32  profilanswer
 

hugoOo a écrit :

Salut, moi j'avai pensé a quelque chose de ce type :

Code :
  1. <?php 
  2. function getSource($url) {
  3. $file = fopen ($url,"r" );     
  4. if (!$file) {
  5. return null;
  6. }     
  7. $doc = "";     
  8. while (!feof ($file)) {
  9. $doc .= fgets ($file, 1024);     
  10. fclose($file);     
  11. return $doc; 
  12. }
  13. ?>


est-ce que c'est bon à votre avis?


Quand tu veux lire un fichier en entier utilises file_get_contents().

Message cité 1 fois
Message édité par CNeo le 19-09-2006 à 21:21:00
n°1444895
hugoOo
laisse pas dépasser ton pixel
Posté le 19-09-2006 à 21:17:31  profilanswer
 

merci pour les conseils, alors comment est ce que je peut faire pour lire un fichier sur un serveur distant?


---------------
http://over-templates.c.la
n°1444910
CNeo
Posté le 19-09-2006 à 21:34:57  profilanswer
 

hugoOo a écrit :

merci pour les conseils, alors comment est ce que je peut faire pour lire un fichier sur un serveur distant?


Essaye ca : ;)

$doc = new DomDocument;
$doc->LoadHTMLFile('Modèle.htm');
$doc->saveXML($doc->getElementsByTagName('html')->item(0));

n°1444920
hugoOo
laisse pas dépasser ton pixel
Posté le 19-09-2006 à 21:51:10  profilanswer
 

est-ce que tu peut expliquer un peu ton code silteplait :hello:


---------------
http://over-templates.c.la
n°1444928
xtof_83
Freeride Spirit
Posté le 19-09-2006 à 22:10:23  profilanswer
 

Google aide bien aussi dans ce genre de cas ;)

n°1445043
anapajari
s/travail/glanding on hfr/gs;
Posté le 20-09-2006 à 09:49:06  profilanswer
 

CNeo a écrit :

Quand tu veux lire un fichier en entier utilises file_get_contents().


Biieeeeeennn .....
 

CNeo a écrit :

Essaye ca : ;)

$doc = new DomDocument;
$doc->LoadHTMLFile('Modèle.htm');
$doc->saveXML($doc->getElementsByTagName('html')->item(0));



Pas bieeeeeennnn ...
 
Nan mais la 2eme méthode c'est un peu abusé sans blaguer. Utiliser le DOM pour lire un fichier au secours  [:roane]  

n°1445262
CNeo
Posté le 20-09-2006 à 13:33:15  profilanswer
 

anapajari a écrit :

Nan mais la 2eme méthode c'est un peu abusé sans blaguer. Utiliser le DOM pour lire un fichier au secours  [:roane]

Ca fait un fichier plus propre en sortie ;) mais si t'es pas sûr que le page que tu veux lire soit correctement codé il faut faire file_get_contents(). [:airforceone]

mood
Publicité
Posté le 20-09-2006 à 13:33:15  profilanswer
 

n°1445277
CNeo
Posté le 20-09-2006 à 13:43:04  profilanswer
 

hugoOo a écrit :

est-ce que tu peut expliquer un peu ton code silteplait :hello:


Ce code utilises DOM. Il charge un fichier HTML et le sauvegarde ensuite en respectant les normes XML.

n°1445303
hugoOo
laisse pas dépasser ton pixel
Posté le 20-09-2006 à 14:02:20  profilanswer
 

Quelqu'un peut t'il me dire clairement comment je dois m'y prendre svp ?


---------------
http://over-templates.c.la
n°1445310
CNeo
Posté le 20-09-2006 à 14:10:25  profilanswer
 

hugoOo a écrit :

Quelqu'un peut t'il me dire clairement comment je dois m'y prendre svp ?


On te l'a dit. [:airforceone]

$file=file_get_contents('http://www.exemple.com/page.htm');

n°1445323
hugoOo
laisse pas dépasser ton pixel
Posté le 20-09-2006 à 14:29:42  profilanswer
 

oui mais j'obtient cette erreur :

Citation :


Warning: fopen() [function.fopen]: URL file-access is disabled in the server configuration


---------------
http://over-templates.c.la
n°1445347
CNeo
Posté le 20-09-2006 à 15:20:20  profilanswer
 

hugoOo a écrit :

oui mais j'obtient cette erreur :

Citation :


Warning: fopen() [function.fopen]: URL file-access is disabled in the server configuration



Pourquoi tu veux faire fopen() ? Fais juste file_get_contents(). Et apprends à lire la doc. [:airforceone] En plus elle est en français ...

n°1445357
hugoOo
laisse pas dépasser ton pixel
Posté le 20-09-2006 à 15:33:12  profilanswer
 

n'empeche que j'ai toujours la même erreur... le serveur n'est pas configuré pour.


---------------
http://over-templates.c.la
n°1445361
CNeo
Posté le 20-09-2006 à 15:37:41  profilanswer
 

T'es en local ? Si non, c'est quoi ton hébergeur ?

n°1445467
hugoOo
laisse pas dépasser ton pixel
Posté le 20-09-2006 à 19:15:37  profilanswer
 

là je suis pour ifrance mais le script est déstiné à tourner sur un serveur de bonne qualité, j'ai demandé a l'administrateur de faire des tests!


---------------
http://over-templates.c.la
n°1445484
hugoOo
laisse pas dépasser ton pixel
Posté le 20-09-2006 à 20:05:36  profilanswer
 

j'ai fait un test avec fsockopen mais je ne sais pas trop comment utiliser la fonction, mon code est il juste? :

Code :
  1. <?php
  2. $source = fsockopen('http://www.webcarcenter.com/occasion/bmw/x3/1988624.html');
  3. $source = file_get_contents($source);
  4. echo $source;
  5. ?>


---------------
http://over-templates.c.la
n°1445487
CNeo
Posté le 20-09-2006 à 20:09:56  profilanswer
 

hugoOo a écrit :

j'ai fait un test avec fsockopen mais je ne sais pas trop comment utiliser la fonction, mon code est il juste? :

Code :
  1. <?php
  2. $source = fsockopen('http://www.webcarcenter.com/occasion/bmw/x3/1988624.html');
  3. $source = file_get_contents($source);
  4. echo $source;
  5. ?>



On t'a dit de regarder la doc ...

n°1445509
hugoOo
laisse pas dépasser ton pixel
Posté le 20-09-2006 à 21:46:17  profilanswer
 

je l'ai regardé la doc, et c'est en regardant la doc que j'ai écrit ce code..


---------------
http://over-templates.c.la
n°1445525
supermofo
Hello World !
Posté le 20-09-2006 à 22:45:12  profilanswer
 

hugoOo a écrit :

là je suis pour ifrance mais le script est déstiné à tourner sur un serveur de bonne qualité, j'ai demandé a l'administrateur de faire des tests!


 
 :lol:
 

Code :
  1. $html = file_get_contents("http://www.lemonde.fr" );


Message édité par supermofo le 20-09-2006 à 22:46:32
n°1445964
hugoOo
laisse pas dépasser ton pixel
Posté le 21-09-2006 à 19:10:26  profilanswer
 

c'est quoi la vanne là ?


---------------
http://over-templates.c.la
n°1445968
CNeo
Posté le 21-09-2006 à 19:29:06  profilanswer
 

hugoOo a écrit :

je l'ai regardé la doc, et c'est en regardant la doc que j'ai écrit ce code..


file_get_contents() ouvre le fichier, le lit et le referme et que donc il n'y a pas besoin fsockopen()

n°1445982
Nekrosaro
Posté le 21-09-2006 à 20:38:19  profilanswer
 

Oui, un appel à file_get_contents() avec comme paramètre l'url doit suffire.
 
Par contre, vu ce que tu as écrit précédemment, si l'accès à des fichiers distants est interdit chez ifrance (comme chez 1and1 avec php5), tu risques de devoir forcément utiliser la fonction fsockopen() (et les fonctions de lecture/fermeture des E/S).
Ce qui est un peu plus long.
 
Mais le mieux serait quand même que tu développes en PHP selon la version installée sur le serveur pro. Pourquoi ? Tu sembles débuter en PHP et mieux vaut commencer par faire simple (soit faire des scripts php adaptés à la machine sur laquelle ils doivent tourner).
 
Aussi, si cette fonctionnalité concernant les fichiers distants est activée, c'est en partie pour éviter que des programmeurs en herbe se fassent avoir avec la célèbre faille include...

n°1445994
hugoOo
laisse pas dépasser ton pixel
Posté le 21-09-2006 à 21:03:25  profilanswer
 

en faite sur le seveur "pro", l'accès à des fichiers distants est interdit aussi donc il faut bien que je passe par fsockopen(), quelqu'un pourrait m'éclairer un peu plus sur le fonctionnemment de cette fonction.
 
ça fait bien longtemps que je me fais plus avoir avec les include quand même^^
 
EDIT : je vien de tester ce code :

Code :
  1. <?php
  2. $inF = fsockopen($url) or die('fsockopen interdit');
  3. while (!feof($inF)) {
  4. echo fgets($inF);
  5. }
  6. fclose($inF);
  7. ?>


 
Et la horreur :::  
fsockopen interdit

Message cité 1 fois
Message édité par hugoOo le 21-09-2006 à 21:05:18

---------------
http://over-templates.c.la
n°1446080
mIRROR
Chevreuillobolchévik
Posté le 22-09-2006 à 08:13:02  profilanswer
 

[:haha]
 
au cas ou avant de developper pour un serveur que tu ne peux pas configurer toi meme ca vaut toujours le coup de faire un petit phpinfo  
ca evite ca genre de mauvaises surprises
http://jdnetdev.ifrance.com/phpinfo.php
 
allow_url_fopen Off
donc c est mort

n°1446498
hugoOo
laisse pas dépasser ton pixel
Posté le 22-09-2006 à 21:52:42  profilanswer
 

oui mais le serveur sur lequel devra tourné le script est un serveur dédié et l'administrateur peut donc modifier la configuration (enfin normalement)


---------------
http://over-templates.c.la
n°1446531
leflos5
On est ou on est pas :)
Posté le 23-09-2006 à 01:59:14  profilanswer
 

hugoOo a écrit :

oui mais le serveur sur lequel devra tourné le script est un serveur dédié et l'administrateur peut donc modifier la configuration (enfin normalement)


S'il est dédié oui il pourra, à toi de te demander s'il vaut mieux pourvoir le faire ou faire autrement :??:
 

n°1446549
nicobru
Posté le 23-09-2006 à 10:26:28  profilanswer
 

hugoOo a écrit :

en faite sur le seveur "pro", l'accès à des fichiers distants est interdit aussi donc il faut bien que je passe par fsockopen(), quelqu'un pourrait m'éclairer un peu plus sur le fonctionnemment de cette fonction.
 
ça fait bien longtemps que je me fais plus avoir avec les include quand même^^
 
EDIT : je vien de tester ce code :

Code :
  1. <?php
  2. $inF = fsockopen($url) or die('fsockopen interdit');
  3. while (!feof($inF)) {
  4. echo fgets($inF);
  5. }
  6. fclose($inF);
  7. ?>


 
Et la horreur :::  
fsockopen interdit


 
 
Ouuuuhlala, ça marche pas comme ça la récupération de page avec fsockopen.  :non:  
Il faut :  
1. ouvrir le socket
2. envoyer la requête http
3. récupérer la réponse
 
Un exemple qui permet de récupérer la page /index.php:
 
 $socket=@fsockopen('www.php.net',80,$errno, $errstr, 5);
   
 if ($socket){
            $out = "GET /index.php HTTP/1.1\r\n";
     $out .= "Host: www.php.net \r\n";
     $out .= "Connection: Close\r\n\r\n";
     fwrite ($socket, $out);
   
     $data=""; while(!feof($socket)) $data.=fgets ($socket,1024);
     fclose($socket);
 }
 
Pour une page en ssl tu fais précéder l'adresse dans fsockopen par 'ssl://'
 
 
Et là attention, il te faudra encore virer les headers HTTP de la réponse.
 
En ce qui concerne l'autorisation d'utiliser fsockopen par ton hébergeur, je pense que tout dépend... de l'hébergeur.
Je suis chez 1and1 qui n'autorise fsockopen que vers les ports 80,8080,443 et >1024...


Message édité par nicobru le 02-10-2006 à 15:44:54
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] récupérer le code source

 

Sujets relatifs
[BATCH][W2K3] récupérer le jour pour un batch[PHP] Probleme de tri d'arrays
flash qui plante sous Internet explorer.FLASH + PHPau sujet de code barre
[MING] Problème de rotation d'un objet ( + police TTF > FDB)[PHP] header http
Importer un SWF dans un SWF ( & PHP)Récupérer la date de création d'un fichier
Récupérer le Full Name d'un utilisateur réseau en VBA [Résolu][MySQL/PHP] Impossible de renommer un fichier proposé en download
Plus de sujets relatifs à : [PHP] récupérer le code source


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR