Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erklärung, wie PHP Remote-Code-Instanzen liest oder abruft

Detaillierte Erklärung, wie PHP Remote-Code-Instanzen liest oder abruft

伊谢尔伦
伊谢尔伦Original
2017-07-17 10:23:002234Durchsuche

PHP-Code zum Crawlen entfernter Website-Daten

Jetzt gibt es möglicherweise viele Programmbegeisterte, die auf die gleiche Frage stoßen, nämlich wie man die Websites anderer Leute wie HTML einer Suchmaschine crawlen kann Code, und dann sammeln und organisieren Sie den Code in nützliche Daten!
Ⅰ Beispiel für das Erfassen des Titels einer Remote-Webseite:

<?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
?>
Ⅱ. Beispiel für das Erfassen des HTML-Codes einer Remote-Webseite:

Das Folgende ist der Codeausschnitt:

<? 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
?>
Kopieren Sie die beiden oben genannten Codeausschnitte direkt und führen Sie sie zurück Um den Effekt zu sehen, ist das obige Beispiel nur ein Prototyp zum Erfassen von Webseitendaten


filesize

gibt die Anzahl der Bytes der Dateigröße zurück und gibt FALSE zurück, wenn ein Fehler auftritt

Hinweis: Da PHPs
Integer-Typ ist ist signiert und die meisten Plattformen verwenden 32-Bit-Ganzzahlen. Die Funktion filesize() kann unerwartete Ergebnisse zurückgeben, wenn Dateien größer als 2 GB sind. Bei Dateien zwischen 2 GB und 4 GB kann dies normalerweise der Fall sein Wird verwendet, um dieses Problem zu lösen. fread() liest bis zu Längenbytes aus dem Dateizeigerhandle. Die Funktion stoppt, wenn Längenbytes erreicht sind oder (für Netzwerkstreams) wenn ein Paket verfügbar ist 🎜>Lesen Sie die Datei
, je nachdem, welche Situation zuerst auftritt Hinweis: Geringe Versionsnutzung Es wird empfohlen, file_get_contents
für PHP5 zu verwenden file_get_contents -- get die gesamte Datei einlesen
string string file_get_contents ( string filename [, int use_include_path [, resources context]])

Gleich wie file(), außer dass file_get_contents() die Datei als zurückgibt eine Zeichenfolge.

Die Funktion file_get_contents() ist die bevorzugte Methode zum Einlesen des Inhalts einer Datei in eine Zeichenfolge. Wenn das Betriebssystem dies unterstützt, wird auch die Speicherzuordnungstechnologie verwendet, um die Leistung zu verbessern.

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung, wie PHP Remote-Code-Instanzen liest oder abruft. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn