为什么我在使用file_get_contents()时得到500错误,但在浏览器中工作?

$html = file_get_contents("https://www.[URL].com"); echo $html; 

在错误日志中产生这个:

PHP警告:file_get_contents(https:// www。[URL] .com)[function.file-get-contents]:未能打开stream:HTTP请求失败! 第13行“/Applications/MAMP/htdocs/test.php中的HTTP / 1.1 500内部服务器错误”;

但是,该网站在浏览器中正常工作。

我也尝试使用cURL。 我没有在日志文件中得到任何错误,但$html现在回声:

“/”应用程序中的服务器错误。
你调用的对象是空的。

…一些更多的debugging信息

任何想法如何解决这个问题?

试试这个解决方法:

 $opts = array('http'=>array('header' => "User-Agent:MyAgent/1.0\r\n")); $context = stream_context_create($opts); $header = file_get_contents('https://www.example.com',false,$context); 

如果这不起作用,也许你不能从https读取?

我不得不input更多的数据到标题中:

 $opts = array('http' => array( 'method' => "GET", 'header' => "User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0\r\n" . "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n" . "Accept-Encoding:gzip, deflate\r\n" . "Accept-Language:cs,en-us;q=0.7,en;q=0.3\r\n" . "Connection:keep-alive\r\n" . "Host:your.domain.com\r\n" )); $context = stream_context_create($opts); $html = file_get_contents($sap_url, FALSE, $context);