PHP file_get_contents函数获取https内容出错的如何解决方法

最近陆陆续续接到网友反馈,导航主题在部分情况下会出现错误,起初我也是懵的,因为我的站点并没有发现这个错误,解决起来比较麻烦,排查了很久一直都未出现问题,但是部分

最近陆陆续续接到网友反馈,导航主题在部分情况下会出现错误,起初我也是懵的,因为我的站点并没有发现这个错误,解决起来比较麻烦,排查了很久一直都未出现问题,但是部分客户真的遇到了,而且错误代码也已经给出,的的确确是导航问题,因为本站使用的是php7.1,没有问题,但是也不能让所有人都去升级,毕竟有些虚拟机升级可能不是很方法,所以还得从跟上排查,zblogphp所给出的错误代码如下:

“E_WARNING : file_get_contents(//top.baidu.com/buzz?b=1&fr=topcategory_c513): failed to open stream: No such file or directory (set_error_handler) ”用file_get_contents这个php函数抓取数据,可能会在部分主机出现莫名其妙的错误,错误代码如图:

自行百度,查看“file_get_contents”这个函数,于是乎大概知道什么原因了,就是“file_get_contents”在获取https的连接时会出现如上的错误提示,百度的解决办法一般都是修改php.ini配置文件,找到“extension=php_openssl.dll”这一行,去掉前面的“;”或者找到“allow_url_include = Off ”这一行,将Off改为On,然后重启服务器。不过我测试了完全不管用,修改了“extension=php_openssl.dll”文件之后无法重启php,这就尴尬了。

其实不用那么麻烦,直接修改php函数就行,比如我们把链接的前面加上http试试看。

解决方法:

找到include.php文件,将“//top.baidu.com/buzz?b=1&fr=topcategory_c513”修改成“http://top.baidu.com/buzz?b=1&fr=topcategory_c513”,如图:

然后刷新页面查看效果是否可以用,导航主题模板已经更新,不需要在修改,部分客户自己修改过源码的请参考教程自行修改,修改完成后,后台首页“清空缓存并编译模板”,然后有问题在反馈给我反馈!