file_get_contents函数获取不到数据的一种情况

问题:

   file_get_contents($url) 获取不到数据,尽管URL地址正确,函数使用正确。如下代码

$url = "https://www.baidu.com";
$html = file_get_contents($url);
echo $html;

 

分析解决:

  百思不得解,百度了很多解决方法(很多都只是解决某特定问题),但解决不了目前的问题。

  之后换了好几个url测试,终于发现上面 $url 是HTTPS地址, file_get_contents() 是能正常获取到HTTP地址的内容,类似 http://www.baidu.com ,所以应该和PHP的SSL配置有关。

  然后从同事那拷贝了同版本的 php.ini ,用 SVN 自带的文本比较功能,和我本地 php.ini 比较,发现本地 php.ini 中 extension=php_openssl.dll 注释掉了,没开。果断开启。

  重启Apache后,  file_get_contents() 马上好使了。

 

总结:

  发现  file_get_contents 获取不到 HTTPS地址 内容时,首先确定PHP是否开启SSL扩展。

 

posted @ 2016-09-17 14:47  刘一二  阅读(7109)  评论(0编辑  收藏  举报