解决file_get_contents无法请求https连接的方法


Posted in PHP onDecember 17, 2013

错误: Warning: fopen() [function.fopen]: Unable to find the wrapper "https" - did you forget to enable it when you configured PHP?

解决方案有3:

1.windows下的PHP,只需要到php.ini中把extension=php_openssl.dll前面的;删掉,重启服务就可以了。

2.linux下的PHP,就必须安装openssl模块,安装好了以后就可以访问了。

3.如果服务器你不能修改配置的话,那么就使用curl函数来替代file_get_contents函数,当然不是简单的替换啊。还有相应的参数配置才能正常使用curl函数。

对curl函数封装如下:

function http_request($url,$timeout=30,$header=array()){  
        if (!function_exists('curl_init')) {  
            throw new Exception('server not install curl');  
        }  
        $ch = curl_init();  
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
        curl_setopt($ch, CURLOPT_HEADER, true);  
        curl_setopt($ch, CURLOPT_URL, $url);  
        curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);  
        if (!emptyempty($header)) {  
            curl_setopt($ch, CURLOPT_HTTPHEADER, $header);  
        }  
        $data = curl_exec($ch);  
        list($header, $data) = explode("\r\n\r\n", $data);  
        $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);  
        if ($http_code == 301 || $http_code == 302) {  
            $matches = array();  
            preg_match('/Location:(.*?)\n/', $header, $matches);  
            $url = trim(array_pop($matches));  
            curl_setopt($ch, CURLOPT_URL, $url);  
            curl_setopt($ch, CURLOPT_HEADER, false);  
            $data = curl_exec($ch);  
        }          if ($data == false) {  
            curl_close($ch);  
        }  
        @curl_close($ch);  
        return $data;  
} 
PHP 相关文章推荐
一个典型的PHP分页实例代码分享
Jul 28 PHP
PHP url 加密解密函数代码
Aug 26 PHP
基于PHP输出缓存(output_buffering)的深入理解
Jun 13 PHP
php获取表单中多个同名input元素的值
Mar 20 PHP
PHP中IP地址与整型数字互相转换详解
Aug 20 PHP
PHP中substr()与explode()函数用法分析
Nov 24 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
Dec 16 PHP
两款万能的php分页类
Nov 12 PHP
PHP查询附近的人及其距离的实现方法
May 11 PHP
CI框架中redis缓存相关操作文件示例代码
May 17 PHP
PHP下载文件的函数实例代码
May 18 PHP
微信公众号之主动给用户发送消息功能
Jun 22 PHP
phpstrom使用xdebug配置方法
Dec 17 #PHP
php使用curl发送json格式数据实例
Dec 17 #PHP
php获取301跳转URL简单实例
Dec 16 #PHP
PHP获取MAC地址的具体实例
Dec 13 #PHP
php配合jquery实现增删操作具体实例
Dec 12 #PHP
php文件上传的例子及参数详解
Dec 12 #PHP
PHP 提取图片img标记中的任意属性的简单实例
Dec 10 #PHP
You might like
PHP4实际应用经验篇(4)
2006/10/09 PHP
PHP仿盗链代码
2012/06/03 PHP
PHP5常用函数列表(分享)
2013/06/07 PHP
destoon实现资讯信息前面调用它所属分类的方法
2014/07/15 PHP
PHP中soap的用法实例
2014/10/24 PHP
php限制ip地址范围的方法
2015/03/31 PHP
yii分页组件用法实例分析
2015/12/28 PHP
PHP实现微信网页授权开发教程
2016/01/19 PHP
phpmailer绑定邮箱的实现方法
2016/12/01 PHP
php模式设计之观察者模式应用实例分析
2019/09/25 PHP
html中的input标签的checked属性jquery判断代码
2012/09/19 Javascript
js控制容器隐藏出现防止样式变化的两种方法
2014/04/25 Javascript
jquery trigger伪造a标签的click事件取代window.open方法
2014/06/23 Javascript
JQuery对表单元素的基本操作使用总结
2014/07/18 Javascript
详解React Native网络请求fetch简单封装
2017/08/10 Javascript
React Native基础入门之调试React Native应用的一小步
2018/07/02 Javascript
基于element-ui的rules中正则表达式
2018/09/04 Javascript
element-ui upload组件多文件上传的示例代码
2018/10/17 Javascript
使用JavaScript解析URL的方法示例
2019/03/01 Javascript
微信小程序实现定位及到指定位置导航的示例代码
2019/08/20 Javascript
python使用BeautifulSoup分页网页中超链接的方法
2015/04/04 Python
python脚本设置系统时间的两种方法
2016/02/21 Python
python3.5使用tkinter制作记事本
2016/06/20 Python
Python实现中一次读取多个值的方法
2018/04/22 Python
Python面向对象程序设计之继承与多继承用法分析
2018/07/13 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
2019/07/11 Python
Python matplotlib可视化实例解析
2020/06/01 Python
Shopee新加坡:东南亚与台湾电商平台
2019/01/25 全球购物
德国Discount-Apotheke中文官网:DC德式康线上药房
2020/02/18 全球购物
节约电力资源的建议书
2014/03/12 职场文书
职业生涯规划书结束语
2014/04/15 职场文书
2019最新校园运动会广播稿!
2019/06/28 职场文书
python爬虫之selenium库的安装及使用教程
2021/05/23 Python
对讲机的最大通讯距离是多少
2022/02/18 无线电
Python+tkinter实现高清图片保存
2022/03/13 Python
为Centos安装指定版本的Docker
2022/04/01 Servers