Se connecter / S'enregistrer
Votre question

[PHP] récupérer le code source

Tags :
  • Script
  • Programmation
Dernière réponse : dans Programmation
Anonyme
19 Septembre 2006 20:47:32

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

Autres pages sur : php recuperer code source

19 Septembre 2006 21:08:03

Tu n'es pas assez claire
Anonyme
19 Septembre 2006 21:13:24

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

Contenus similaires
19 Septembre 2006 21:32:39

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 !!!!!
Anonyme
19 Septembre 2006 21:47:37

Mon code est :
  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
Anonyme
19 Septembre 2006 21:52:31

??
19 Septembre 2006 22:33:33

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

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

  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 :

  1. $mon_code_source = getSource('<a href="http://www.toto.com/ma_page.html" rel="nofollow" target="_blank">http://www.toto.com/ma_page.html</a>');
20 Septembre 2006 00:05:46

Anonyme a dit :
??


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
Anonyme
20 Septembre 2006 13:51:09

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: 
20 Septembre 2006 14:29:02

Ca marche aussi, c'est de la buférisation, cela marche pour toute type de fichier mis en mémoire que tu exploite apres.
Anonyme
20 Septembre 2006 14:42:42

j'ai fait ce petit 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 ?
20 Septembre 2006 15:19:47

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

Fait avec openfile() (ou un socket)
Anonyme
20 Septembre 2006 15:34:25

j'ai toujours la même erreur, et je n'ai malheuresement pas accés au socket sur ce serveur ..
a c 145 L Programmation
20 Septembre 2006 17:03:27

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é.
Anonyme
20 Septembre 2006 20:04:30

j'ai pas trés bien compris l'utilisation de fsockopen : mon code est t'il juste? :
  1. <?php
  2. $source = fsockopen($url);
  3. $source = file_get_contents($source);
  4. echo $source;
  5. ?>

?? :hello: 
20 Septembre 2006 20:09:11

ok crazy, mais quel est sa version actuel ? c'est 4.3.2 la derniere stable non?
a c 145 L Programmation
20 Septembre 2006 20:14:18

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:
  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...
Anonyme
20 Septembre 2006 21:49:14

ok merci je vais tester ça
Anonyme
21 Septembre 2006 21:05:51

ça donne fsockopen interdit!! je sais plus comment faire!
21 Septembre 2006 22:08:57

ton hébergeur n'autorise pas le fsockopen
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS