Home  >  Article  >  Backend Development  >  Perfect solution to failed to open stream: HTTP request failed!_PHP tutorial

Perfect solution to failed to open stream: HTTP request failed!_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 17:39:393961browse

When using the file_get_contents method that comes with php5 to obtain remote files, sometimes the warning message file_get_contents(): failed to open stream: HTTP request failed! will appear.

Google or Baidu, there are many such problems, the solution is to modify php.ini, enable allow_url_fopen, change it to allow_url_fopen = On

This can solve some people’s problems. 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" (indicates which The script accesses the network. By default, remove the " ; " in front of it. Just restart the server.

But some people still have this warning message. There is still one step left to achieve a perfect solution. 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.
I grabbed the structural formula of chemblink in batches and found that some pictures could not be displayed after the loop, but the remote files existed.
When grabbing remote files, a warning message similar to Warning: readfile(http://www.BkJia.com/logo.gif) [function.readfile]: failed to open stream: HTTP request failed! appears. I am using

ob_start();
readfile("http://www.BkJia.com/logo.gif");
$img = ob_get_contents();
ob_end_clean();


In this way, the above error will appear from time to time during operation. I also changed other functions such as file_get_contents, but it didn't work. After checking on the Internet, I found that using the CURL method to capture will not cause errors

$url = "http://www.BkJia.com/logo.gif";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT,10);
$img = curl_exec($ch);

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/486273.htmlTechArticleWhen using the file_get_contents method that comes with php5 to obtain remote files, file_get_contents(): failed sometimes occurs. to open stream: HTTP request failed! This warning message. ...
Statement:
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