Maison > Article > développement back-end > Explication détaillée de la façon dont PHP lit ou récupère les instances de code distant
Code PHP pour explorer les données de sites Web distants
Maintenant, de nombreux passionnés de programmes seront peut-être confrontés à la même question, c'est-à-dire comment explorer les sites Web d'autres personnes comme un moteur de recherche HTML code, puis collectez et organisez le code en données utiles ! Permettez-moi de vous présenter quelques exemples simples aujourd'hui
Ⅰ Exemple de récupération du titre d'une page Web distante :
Ce qui suit est un extrait de code :
<?php /* +------------------------------------------------------------- +抓取网页标题的代码,直接拷贝本代码片段,另存为.php文件执行即可. +------------------------------------------------------------- */ error_reporting (7); $file = fopen ("http://www.php.cn/", "r"); if (!$file) { echo "<font color=red>Unable to open remote file.</font>\n"; exit; } while (!feof ($file)) { $line = fgets ($file, 1024); if (eregi ("<title>(.*)</title>", $line, $out)) { $title = $out[1]; echo "".$title.""; break; } } fclose($file); //End ?>
Ⅱ. Exemple de récupération du code HTML d'une page Web distante :
Voici l'extrait de code :
<? php /* +---------------- +DNSing Sprider +---------------- */ $fp = fsockopen("www.php.cn", 80, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno)<br/>\n"; } else { $out = "GET / HTTP/1.1\r\n"; $out .= "Host:www.php.cn\r\n"; $out .= "Connection: Close \r\n\r\n"; fputs($fp, $out); while (!feof($fp)) { echo fgets($fp, 128); } fclose($fp); } //End ?>
Copiez directement les deux extraits de code ci-dessus et réexécutez-les. pour voir l'effet. L'exemple ci-dessus n'est qu'un prototype de récupération de données de page Web. Pour le rendre plus adapté à votre propre usage, la situation varie
fopen() lie le nom de la ressource. spécifié par fichier dans un flux.
filesize renvoie le nombre d'octets de la taille du fichier et renvoie FALSE si une erreur se produit
Remarque : parce que le type entier de PHP. est signé et la plupart des plates-formes utilisent des entiers 32 bits. La fonction filesize() peut renvoyer des résultats inattendus lorsqu'elle rencontre des fichiers de plus de 2 Go. Pour les fichiers entre 2 Go et 4 Go, sprintf("%u", filesize($file)) peut généralement être. utilisé pour surmonter ce problème.
fread() lit jusqu'à la longueur des octets à partir du handle du pointeur de fichier. La fonction s'arrête lorsque la longueur des octets est lue, ou lorsque l'EOF est atteint, ou (pour les flux réseau) lorsqu'un paquet est disponible <.>Lisez le fichier, selon la situation rencontrée en premier. Remarque : utilisation de la version basse ! Il est recommandé d'utiliser
file_get_contents pour php5
chaîne string file_get_contents ( string filename [, int use_include_path [, resource context]])
Identique à file(), sauf que file_get_contents() renvoie le fichier comme une chaîne de caractères.
La fonction file_get_contents() est la méthode préférée pour lire le contenu d'un fichier dans une chaîne. Si le système d'exploitation la prend en charge, la technologie de mappage de mémoire sera également utilisée pour améliorer les performances.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!