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

Explication détaillée de la façon dont PHP lit ou récupère les instances de code distant

伊谢尔伦
伊谢尔伦original
2017-07-17 10:23:002234parcourir

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

file_get_contents -- get. le fichier entier Lire dans une

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn