Lire la source d'une URI

  • Auteur de la discussion Auteur de la discussion milkiway
  • Date de début Date de début
WRInaute accro
Hello,
je suis en train de dev un script qui a besoin de lire le code source des pages HTML.
Pour l'instant je fais un formulaire où il faut copier/coller le code source de la page en question mais je préfèrerais que l'on puisse entrer son URL et que ça analyse la source.

Comment faire ? Exemple : http://validator.w3.org/ dans "Validate by URL"

Merci à tous
 
WRInaute discret
tu peux le faire avec fopen ( -http://ca2.php.net/fopen ) a condition que la directive la directive allow_url_fopen soit activee sur le serveur. Personellement j'utilise parfois la librairie snoopy (-http://sourceforge.net/projects/snoopy/ ) , qui gere les redirection, le user-agent, etc...

Ben
 
WRInaute accro
@ben : j'ai trouvé avec fopen et fread par contre je ne vois pas à quoii sert Snoopy, tu peux m'en dire plus stp ?
sinon j'ai un "problème" : avec fread il faut indiquer la taille à lire (en octet), sur un fichier local on fait filesize($file) et c'est bon mais filesize ne marche pas sur un distant, comment faire ?

@textalyser : ok je vais essayer pour voir si ça marche mieux, justement il me faut les balises ;)
 
WRInaute discret
L'interet de Snoopy c'est qu'il permet les connexions ssl, le chargement automatique du contenu des frames, de passer les parametres des requetes http (referer, cookies, user-agent, ...), de suivre automatiquement les redirections, de soumettre des formulaires ect...

Il permet aussi de filtrer les tags html, et de lister tous les liens d'une page si ma memoire est bonne. Tu peux faire tout cela toi même avec fread, mais puisque quelqu'un a deja pris la peine de le faire, autant en profiter...

C'est a toi de voir si tu as besoin de ces fonctionnalités ou pas. Suivant le cas, file_get_contents ou fopen peuvent etre suffisants.

Ben
 
WRInaute impliqué
milkiway a dit:
avec fread il faut indiquer la taille à lire (en octet), sur un fichier local on fait filesize($file) et c'est bon mais filesize ne marche pas sur un distant, comment faire ?
Tu lis par bloc jusqu'à avoir une fin de fichier
du style :
while (!feof($file_id)) fread ou fgets... etc...
 
Nouveau WRInaute
Lire la source d'une page httpS

Bonjoru à tous,


je suis en train de m'arracher les cheveux. J'utilise depuis longtemps la fonction fopen pour lire le code source de page en http://. Par contre, je suis incapable d'utiliser la même fonction avec des page en https:// SSL.

Pour info, l'extension OPENSSL est bien active sur mon EASYPHP.

AUUUU SSSEECCCOOOURS !! et merci d'avance, Julien

Pour info, le code utilisé est:
<?php
$fp = fopen("https://www.vopen.com","r");
if (!$fp) {
echo "Erreur";
} else {
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
?>
 
Discussions similaires
Haut