解决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 相关文章推荐
GD输出汉字的函数的分析
Oct 09 PHP
网站用php实现paypal整合方法
Nov 28 PHP
使ecshop模板中可引用常量的实现方法
Jun 02 PHP
ThinkPHP CURD方法之order方法详解
Jun 18 PHP
php实现QQ空间获取当前用户的用户名并生成图片
Jul 25 PHP
Zend Framework教程之Application和Bootstrap用法详解
Mar 10 PHP
微信公众平台开发(五) 天气预报功能开发
Dec 03 PHP
php实现头像上传预览功能
Apr 27 PHP
Yii2.0多文件上传实例说明
Jul 24 PHP
基于PHP-FPM进程池探秘
Oct 17 PHP
php7性能提升的原因详解
Oct 13 PHP
PHP数组Key强制类型转换实现原理解析
Sep 01 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 Redis扩展无法加载的问题解决方法
2019/08/22 PHP
jQuery 使用手册(六)
2009/09/23 Javascript
解决Extjs 4 Panel作为Window组件的子组件时出现双重边框问题
2013/01/11 Javascript
jQuery 鼠标经过(hover)事件的延时处理示例
2014/04/14 Javascript
JS中自定义定时器让它在某一时刻执行
2014/09/02 Javascript
js省市联动效果完整实例代码
2015/12/09 Javascript
Extjs4.0 ComboBox如何实现三级联动
2016/05/11 Javascript
基于JS实现二维码图片固定在右下角某处并跟随滚动条滚动
2017/02/08 Javascript
jquery Ajax实现Select动态添加数据
2017/06/08 jQuery
angularjs实现上拉加载和下拉刷新数据功能
2017/06/12 Javascript
纯js实现画一棵树的示例
2017/09/05 Javascript
JS脚本加载后执行相应回调函数的操作方法
2018/02/28 Javascript
利用npm 安装删除模块的方法
2018/05/15 Javascript
使用JS location实现搜索框历史记录功能
2019/12/23 Javascript
有关vue 开发钉钉 H5 微应用 dd.ready() 不执行问题及快速解决方案
2020/05/09 Javascript
Python运行的17个时新手常见错误小结
2012/08/07 Python
Python中List.count()方法的使用教程
2015/05/20 Python
Python编程实现二叉树及七种遍历方法详解
2017/06/02 Python
Python模拟登陆实现代码
2017/06/14 Python
python占位符输入方式实例
2019/05/27 Python
python3 requests库实现多图片爬取教程
2019/12/18 Python
django 外键创建注意事项说明
2020/05/20 Python
python抢购软件/插件/脚本附完整源码
2021/03/04 Python
html5 viewport使用方法示例详解
2013/12/02 HTML / CSS
bonprix荷兰网上商店:便宜的服装、鞋子和家居用品
2020/07/04 全球购物
文件中有一组整数,要求排序后输出到另一个文件中
2012/01/04 面试题
What's the difference between Debug and Trace class? (Debug类与Trace类有什么区别)
2013/09/10 面试题
求职简历自荐信范文
2013/10/21 职场文书
公司财务总监岗位职责
2013/12/14 职场文书
终止劳动合同协议书
2014/04/14 职场文书
2015年学校教科室工作总结
2015/07/20 职场文书
2015初中团支部工作总结
2015/07/21 职场文书
村主任当选感言
2015/08/01 职场文书
幼儿教师三分钟演讲稿
2019/06/21 职场文书
Python实现拼音转换
2021/06/07 Python
【海涛dota解说】DCG联赛第一周 LGD VS DH
2022/04/01 DOTA