解决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 相关文章推荐
让你的WINDOWS同时支持MYSQL4,MYSQL4.1,MYSQL5X
Dec 06 PHP
php用数组返回无限分类的列表数据的代码
Aug 08 PHP
php实现计数器方法小结
Jan 05 PHP
6个超实用的PHP代码片段
Aug 10 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
Dec 09 PHP
编写PHP脚本使WordPress的主题支持Widget侧边栏
Dec 14 PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
Sep 19 PHP
PHP中list方法用法示例
Dec 01 PHP
thinkPHP5.0框架自动加载机制分析
Mar 18 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
Aug 30 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
Feb 20 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
Apr 27 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图片上传程序
2008/03/27 PHP
php中的数组操作函数整理
2008/08/18 PHP
PHP中ob_start函数的使用说明
2013/11/11 PHP
简介WordPress中用于获取首页和站点链接的PHP函数
2015/12/17 PHP
PHP使用PHPExcel删除Excel单元格指定列的方法
2016/07/06 PHP
PHP实现页面静态化的超简单方法
2016/09/06 PHP
php+Ajax无刷新验证用户名操作实例详解
2019/03/04 PHP
推荐11款jQuery开发的复选框和单选框美化插件
2011/08/02 Javascript
javascript数组操作总结和属性、方法介绍
2014/04/05 Javascript
JavaScript显示表单内元素数量的方法
2015/04/02 Javascript
jQuery插件制作之参数用法实例分析
2015/06/01 Javascript
javascript实现多栏闭合展开式广告位菜单效果实例
2015/08/05 Javascript
浅谈jQuery中的checkbox问题
2016/08/10 Javascript
使用AngularJS2中的指令实现按钮的切换效果
2017/03/27 Javascript
Node.js静态服务器的实现方法
2018/02/28 Javascript
Vue中的transition封装组件的实现方法
2019/08/13 Javascript
原生JavaScript创建不可变对象的方法简单示例
2020/05/07 Javascript
微信小程序通过websocket实时语音识别的实现代码
2020/08/19 Javascript
[01:45]绝对公平!DOTA2队长征召模式详解
2014/04/25 DOTA
Python安装及Pycharm安装使用教程图解
2019/09/20 Python
python多线程高级锁condition简单用法示例
2019/11/07 Python
win10系统下python3安装及pip换源和使用教程
2020/01/06 Python
Python3 shutil(高级文件操作模块)实例用法总结
2020/02/19 Python
Python图像处理库PIL的ImageDraw模块介绍详解
2020/02/26 Python
Python实现RabbitMQ6种消息模型的示例代码
2020/03/30 Python
python删除指定列或多列单个或多个内容实例
2020/06/28 Python
Python 必须了解的5种高级特征
2020/09/10 Python
Visual Studio code 配置Python开发环境
2020/09/11 Python
Python之字典对象的几种创建方法
2020/09/30 Python
linux下进程间通信的方式
2014/12/23 面试题
为什么要做架构设计
2015/07/08 面试题
工商管理实习自我鉴定
2013/09/28 职场文书
2014领导干部四风问题查摆思想汇报
2014/09/13 职场文书
运动会400米加油稿(8篇)
2014/09/22 职场文书
初中毕业生自我评价
2015/03/02 职场文书
工作证明书
2015/06/15 职场文书