Detailed explanation of how PHP reads or grabs remote code instances

伊谢尔伦
Release: 2023-03-14 08:48:02
Original
2239 people have browsed it

PHP code for crawling remote website data

Now there may be many program enthusiasts who will encounter the same question, that is, how to crawl other people’s websites like a search engine HTML code, and then collect and organize the code into useful data! Let me introduce some simple examples today.
Ⅰ. Example of grabbing the title of a remote web page:
The following is a code snippet:

<?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
?>
Copy after login

Ⅱ. Example of grabbing the HTML code of a remote web page:
The following is the code snippet:

<? 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
?>
Copy after login

Copy the above two code snippets directly and run them back to see the effect. The above example is just for grabbing The prototype of web page data, to make it more suitable for your own use, the situation varies.

fopen() binds the name resource specified by file to a stream.
filesize Returns the number of bytes of the file size, and returns FALSE if an error occurs.
Note: Because PHP's integer type is signed, and most platforms use 32-bit integers, filesize() The function may return unexpected results when encountering files larger than 2GB. For files between 2GB and 4GB, you can usually use sprintf("%u", filesize($file)) to overcome this problem.
fread () Read up to length bytes from the file pointer handle. This function will stop reading when length bytes are read, or when EOF is reached, or (for network streams) when a packet is available Get the file , depending on which situation you encounter first.
Note: Low version usage! It is recommended to use file_get_contents for php5

file_get_contents -- Read the entire file into a String
string file_get_contents (string filename [, int use_include_path [, resource context]])
Same as file(), except that file_get_contents() returns the file as a string. ## The #file_get_contents() function is the preferred method for reading the contents of a file into a string. If the operating system supports it, memory mapping technology will also be used to enhance performance.

The above is the detailed content of Detailed explanation of how PHP reads or grabs remote code instances. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template