解决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 相关文章推荐
echo(),print(),print_r()之间的区别?
Nov 19 PHP
php zend解密软件绿色版测试可用
Apr 14 PHP
php过滤危险html代码
Aug 18 PHP
php完全过滤HTML,JS,CSS等标签
Jan 16 PHP
PHP初学者常见问题集合 修正版(21问答)
Mar 23 PHP
php中获取指定IP的物理地址的代码(正则表达式)
Jun 23 PHP
求PHP数组最大值,最小值的代码
Oct 31 PHP
php中in_array函数用法分析
Nov 15 PHP
各种快递查询--Api接口
Apr 26 PHP
thinkphp5.0自定义验证规则使用方法
Nov 16 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
Aug 15 PHP
Laravel框架数据库迁移操作实例详解
Apr 06 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
队列在编程中的实际应用(php)
2010/09/04 PHP
PHP利用header跳转失效的解决方法
2014/10/24 PHP
thinkphp多层MVC用法分析
2015/12/30 PHP
php+jquery+html实现点击不刷新加载更多的实例代码
2016/08/12 PHP
php自动加载代码实例详解
2021/02/26 PHP
JS 创建对象(常见的几种方法)
2008/11/03 Javascript
ExtJS GTGrid 简单用户管理
2009/07/01 Javascript
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
2014/01/07 Javascript
jquery获取radio值实例
2014/10/16 Javascript
jQuery实现点击图片翻页展示效果的方法
2015/02/16 Javascript
javascript自动切换焦点控制效果完整实例
2016/02/02 Javascript
jQuery+ajax实现滚动到页面底部自动加载图文列表效果(类似图片懒加载)
2016/06/07 Javascript
BootStrap Table对前台页面表格的支持实例讲解
2016/12/22 Javascript
JavaScript实现的鼠标响应颜色渐变效果完整实例
2017/02/18 Javascript
jquery 禁止鼠标右键并监听右键事件
2017/04/27 jQuery
JavaScript 通过Ajax 动态加载CheckBox复选框
2017/08/31 Javascript
vue中promise的使用及异步请求数据的方法
2018/11/08 Javascript
详解Webpack如何引入CDN链接来优化编译后的体积
2019/06/21 Javascript
layui 数据表格复选框实现单选功能的例子
2019/09/19 Javascript
JavaScript中如何调用Java方法
2020/09/16 Javascript
python实现的防DDoS脚本
2011/02/08 Python
python操作CouchDB的方法
2014/10/08 Python
Python连接PostgreSQL数据库的方法
2016/11/28 Python
python学习基础之循环import及import过程
2018/04/22 Python
Python嵌套列表转一维的方法(压平嵌套列表)
2018/07/03 Python
Python使用paramiko操作linux的方法讲解
2019/02/25 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
2019/06/25 Python
django之对FileField字段的upload_to的设定方法
2019/07/28 Python
Python爬虫 批量爬取下载抖音视频代码实例
2019/08/16 Python
Python编写一个验证码图片数据标注GUI程序附源码
2019/12/09 Python
用python对excel进行操作(读,写,修改)
2020/12/25 Python
Python3.9.1中使用match方法详解
2021/02/08 Python
英国汽车零件购物网站:GSF Car Parts
2019/05/23 全球购物
体育活动总结范文
2014/05/04 职场文书
爱国主题班会教案
2015/08/14 职场文书
辞职信怎么写?你都知道吗?
2019/06/24 职场文书