Tom's Guide > Forum > Programmation > [PHP] récupérer le code source
Mot :    Pseudo :           
 

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

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Tu n'es pas assez claire

Répondre à sparrowix

enfaite je souhaite créer un script (php) qui a une page html a visiter et qui récupère le code source de la page et le stoc dans une variable php.
J'espère avoir été plus clair! j'avais pensé a un code de ce type, qu'en pensez vous? :

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. ?>


Répondre à 2Dpix

Bha pourquoi ne testes tu pas au lieu de venir poster un message sur ce forum ? tu auras la solution par toi même.......

Ton code me semble bon, mais bon sans tester je ne peux pas dire si il est juste !!!!!

Répondre à Kymic@IDN

Mon code est :

Code :
  1. <?php
  2. function getSource('http://www.webcarcenter.com/occasion/bmw/serie-3/330/1988470.html') {
  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. }
  14. ?>


mais il m'affiche un message d'erreur :
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ')' in /www/sites/1/ifrance.com/g/b/gbsoundsystem/site/test.php on line 2

Répondre à 2Dpix

heu 2dpix ? le script il est pas de toi je supposes.....

Renseigne toi un peu sur le php avant de faire des grosse boulettes...

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



la tu viens de déclarer ta fonction que tu as gentiment faite....

ensuite tu l'appelles comme ceci :

Code :
  1. $mon_code_source = getSource('http://www.toto.com/ma_page.html');

------------------------------ Découvrer des vidéos et des images de sports extrêmes (ski, monocycle, vtt, etc...)
Répondre à Kymic@IDN



Va lire. J'ai pas mis ce lien pour faire joli, allez, je te dis ce que tu devrais lire :

ob_clean
ob_flush
ob_start

Répondre à okinou

kymic, si si le code est de moi: je te remercie je sais comment appeller une fonction.
Okinou, j'ai bien lu les pages mais je vois pas bien comment utiliser ces fonctions pour ce que je veut faire. tu peut m'éclairer un peu plus?

EDIT: Okinou je supose que tu parlai de ça :

Citation :

ob_start : Cette fonction démarre la tamporisation de sortie. Tant qu'elle est enclenchée, aucune donnée, hormis les en-têtes, n'est envoyée au navigateur, mais temporairement mise en tampon.

Le contenu de ce tampon peut être copié dans une chaîne avec la fonction ob_get_contents().


Mais ceci marche seulement sur les pages de mon propre serveur, alors que là je souhaite récupérer le code source de pages étant situées sur un autre serveur.
:hello:


Message édité par 2Dpix le 20-09-2006 à 13:56:07
Répondre à 2Dpix

Ca marche aussi, c'est de la buférisation, cela marche pour toute type de fichier mis en mémoire que tu exploite apres.

Répondre à okinou

j'ai fait ce petit code :

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


Ca vous semble bon ?

Mais j'obtient cette erreur :
URL file-access is disabled in the server configuration;

est-ce visible dans le phpinfo ?

Répondre à 2Dpix

Les include distant ne fonctionne pas (<php5.1).

Fait avec openfile() (ou un socket)

Répondre à okinou

j'ai toujours la même erreur, et je n'ai malheuresement pas accés au socket sur ce serveur ..

Répondre à 2Dpix

Non, le problème vient de la configuration du serveur qui refuse l'ouverture de fichiers distants...
Peut-être qu'en passant par fsockopen, ça marchera mieux...

Pour Okinou:

Citation :

Les versions Windows de PHP antérieures à la version 4.3.0 ne supportent pas l'accès aux fichiers distants avec cette fonction, même si allow_url_fopen est activé.


Message édité par crazycat@idn le 20-09-2006 à 17:04:43
------------------------------ Réseau IRC Francophone | g33k-zone
Répondre à crazycat@idn

j'ai pas trés bien compris l'utilisation de fsockopen : mon code est t'il juste? :

Code :
  1. <?php
  2. $source = fsockopen($url);
  3. $source = file_get_contents($source);
  4. echo $source;
  5. ?>


?? :hello:

Répondre à 2Dpix

ok crazy, mais quel est sa version actuel ? c'est 4.3.2 la derniere stable non?

Répondre à okinou

okinou, 4.3.2 est supérieure à 4.3.0 si je ne m'abuse :)

2dpix: file_get_contents est en PHP5.
Si ton fsockopen fonctionne, tu peux faire:

Code :
  1. $inF = fsockopen("ton url" ) or die('fsockopen interdit');
  2. while (!feof($inF)) {
  3.   echo fgets($inF);
  4. }
  5. fclose($inF);



Petit détail: changer $source (identifiant de connexion) en $source (variable string) ne peut que tout planter...


Message édité par crazycat@idn le 20-09-2006 à 20:15:47
------------------------------ Réseau IRC Francophone | g33k-zone
Répondre à crazycat@idn

ok merci je vais tester ça

Répondre à 2Dpix

ça donne fsockopen interdit!! je sais plus comment faire!

Répondre à 2Dpix

ton hébergeur n'autorise pas le fsockopen

Répondre à okinou
Tom's Guide > Forum > Programmation > [PHP] récupérer le code source
Aller à :

Il y a 2000 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens