解决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中获得视频时间总长度的另一种方法
Sep 15 PHP
如何利用PHP执行.SQL文件
Jul 05 PHP
排序算法之PHP版快速排序、冒泡排序
Apr 09 PHP
PHP生成二维码的两个方法和实例
Jul 01 PHP
smarty模板引擎从配置文件中获取数据的方法
Jan 22 PHP
php解析xml 的四种简单方法(附实例)
Jul 11 PHP
PHP构造函数与析构函数用法示例
Sep 28 PHP
php将print_r处理后的数据还原为原始数组的解决方法
Nov 02 PHP
PHP实现上传多文件示例代码
Feb 20 PHP
基于PHP实现栈数据结构和括号匹配算法示例
Aug 10 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
Aug 10 PHP
详解cookie验证的php应用的一种SSO解决办法
Oct 20 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
文件系统基本操作类
2006/11/23 PHP
用PHP实现图象锐化代码
2007/06/14 PHP
smarty基础之拼接字符串的详解
2013/06/18 PHP
自定义session存储机制避免会话保持问题
2014/10/08 PHP
Windows7下的php环境配置教程
2015/02/28 PHP
Zend Framework分发器用法示例
2016/12/11 PHP
laravel Model 执行事务的实现
2019/10/10 PHP
Prototype RegExp对象 学习
2009/07/19 Javascript
json 实例详细说明教程
2009/10/31 Javascript
JavaScript地图拖动功能SpryMap的简单实现
2013/07/17 Javascript
JS动态添加Table的TR,TD实现方法
2015/01/28 Javascript
jquery带动画效果幻灯片特效代码
2015/08/27 Javascript
js+canvas绘制五角星的方法
2016/01/28 Javascript
jquery计算出left和top,让一个div水平垂直居中的简单实例
2016/07/13 Javascript
AngularJS基础 ng-model-options 指令简单示例
2016/08/02 Javascript
jQuery 常见小例汇总
2016/12/14 Javascript
jQuery弹出窗口打开链接的实现代码
2016/12/24 Javascript
vue项目中运用webpack动态配置打包多种环境域名的方法
2019/06/24 Javascript
小程序点击图片实现png转jpg
2019/10/22 Javascript
JavaScript实现字符串与HTML格式相互转换
2020/03/17 Javascript
详解JavaScript中的链式调用
2020/11/27 Javascript
python re正则表达式模块(Regular Expression)
2014/07/16 Python
Python3遍历目录树实现方法
2015/05/22 Python
python 垃圾收集机制的实例详解
2017/08/20 Python
Python 日期区间处理 (本周本月上周上月...)
2019/08/08 Python
Python中__repr__和__str__区别详解
2019/11/07 Python
numpy的Fancy Indexing和array比较详解
2020/06/11 Python
Python入门基础之数字字符串与列表
2021/02/01 Python
Python用SSH连接到网络设备
2021/02/18 Python
HTML5标签大全
2016/11/23 HTML / CSS
印尼综合在线预订网站:Tiket.com(机票、酒店、火车、租车和娱乐)
2018/10/11 全球购物
Skyscanner加拿大:全球旅行搜索平台
2018/11/19 全球购物
运动会入场解说词300字
2014/01/25 职场文书
制作部班长职位说明书
2014/02/26 职场文书
幼教求职信
2014/03/12 职场文书
爱护公共设施的标语
2014/06/24 职场文书