1. How to use fopen
Copy the code The code is as follows:
$handle = fopen ("http://s.jb51.net/", "rb");
$contents = "";
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
fclose($handle);
echo $contents; //Output the obtained content.
?>
Copy the code The code is as follows:
// For PHP 5 and above, you can use the following code
$handle = fopen("http:// s.jb51.net", "rb");
$contents = stream_get_contents($handle);
fclose($handle);
echo $contents;
?>
But the above code is prone to failed to open stream: HTTP request failed! Error, solution
Some people say that in php.ini, there are two options: allow_url_fopen =on (indicating that remote files can be opened through url), user_agent="PHP" (indicating which script to access Network, by default there is a ";" in front of it (remove it) and restart the server.
But some people still have this warning message. There is still one step left to solve it perfectly. You have to set the user_agent in php.ini. The default user_agent in php is PHP. We change it to Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) to simulate the browser
user_agent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
I encountered this problem at work and solved it perfectly, so I share it with everyone.
2. Implement it through curl
Copy the code The code is as follows:
$url = "http://s.jb51.net";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT,10);
$dxycontent = curl_exec($ch);
echo $dxycontent;
? >
You can use the following code to download under Linux
exec("wget {$url}");
The difference between PHP grabbing external resource functions fopen / file_get_contents / curl
fopen / file_get_contents will redo DNS for each request Query, DNS information is not cached.
But CURL will automatically cache DNS information. Requests for web pages or images under the same domain name only require one DNS query.
This greatly reduces the number of DNS queries.
So the performance of CURL is much better than fopen/file_get_contents.
Original content on this site, please indicate the source when reprinting.
The above has introduced the code fopen and curl for PHP to obtain remote web content. It has been tested, including aspects of the content. I hope it will be helpful to friends who are interested in PHP tutorials.