file_get_contents(): Unable to find the wrapper https


使用file_get_contents向https类型的链接发送构造的请求头,返回:
Warning: file_get_contents(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP?

原因分析
PHP没有开启php_openssl扩展;
检测方法
检测主机是否开启php_openssl扩展的方法:

1
2
3
4
5
$ssl = stream_get_wrappers();
echo 'openssl: ', extension_loaded ('openssl') ? 'yes':'no', "\n";
echo 'http wrapper: ', in_array('http', $ssl) ? 'yes':'no', "\n";
echo 'https wrapper: ', in_array('https', $ssl) ? 'yes':'no', "\n";
echo 'wrappers: ', var_export($ssl);

如果返回的结果如下:

1
2
3
4
5
6
openssl: yes
http wrapper: yes
https wrapper: yes
wrappers: array(11) {
[...]
}

表明主机已经开启了php_openssl扩展。
解决方案
修改PHP配置文件php.ini,启用php_openssl扩展并开启allow_url_fopen。

1
extension=php_openssl.dll
allow_url_fopen = On

转载请注明出处:http://yurixu.com/blog/2016/08/17/file-get-contents-Unable-to-find-the-wrapper-https/

分享 本文总阅读量
< !-- add by yurixu 替换Google的jquery并且添加判断逻辑 -->