解决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提示无法加载或mcrypt没有找到 PHP 扩展 mbstring解决办法
Mar 27 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
Aug 31 PHP
PHP以及MYSQL日期比较方法
Nov 29 PHP
php缩小png图片不损失透明色的解决方法
Dec 25 PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
Mar 28 PHP
PHP获取浏览器信息类和客户端地理位置的2个方法
Apr 24 PHP
php版淘宝网查询商品接口代码示例
Jun 17 PHP
深入理解PHP中的empty和isset函数
May 26 PHP
PHP更安全的密码加密机制Bcrypt详解
Jun 18 PHP
Thinkphp 框架扩展之驱动扩展实例分析
Apr 27 PHP
PHP number_format函数原理及实例解析
Jul 14 PHP
php array_map()函数实例用法
Mar 03 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/10/09 PHP
PHP语法速查表
2006/12/06 PHP
php cli 方式 在crotab中运行解决
2010/02/08 PHP
关于二级目录拖拽排序的实现(源码示例下载)
2013/04/26 PHP
Jquery 扩展方法
2010/05/06 Javascript
autoPlay 基于jquery的图片自动播放效果
2011/12/07 Javascript
玩转jQuery按钮 请告诉我你最喜欢哪些?
2012/01/08 Javascript
jQuery 在光标定位的地方插入文字的插件
2012/05/10 Javascript
jquery toolbar与网页浮动工具条具体实现代码
2014/01/12 Javascript
jQuery控制的不同方向的滑动(向左、向右滑动等)
2014/07/18 Javascript
基于JavaScript实现移动端TAB触屏切换效果
2015/10/20 Javascript
Bootstrap面板使用方法
2017/01/16 Javascript
react实现pure render时bind(this)隐患需注意!
2017/03/09 Javascript
nodejs socket服务端和客户端简单通信功能
2017/09/14 NodeJs
Mac中安装nvm的教程分享
2017/12/11 Javascript
JavaScript变量作用域及内存问题实例分析
2019/06/10 Javascript
[02:17]DOTA2亚洲邀请赛 RAVE战队出场宣传片
2015/02/07 DOTA
Python Queue模块详解
2014/11/30 Python
Python压缩解压缩zip文件及破解zip文件密码的方法
2015/11/04 Python
Python生成随机密码的方法
2017/06/16 Python
对Python3中bytes和HexStr之间的转换详解
2018/12/04 Python
python如何读取bin文件并下发串口
2019/07/05 Python
HTML5 Canvas实现图片缩放、翻转、颜色渐变的代码示例
2016/02/28 HTML / CSS
Roxy俄罗斯官方网站:冲浪和滑雪板的一切
2020/06/20 全球购物
应届大学生求职的自我评价
2013/11/17 职场文书
生日礼品店创业计划书范文
2014/03/21 职场文书
诚信承诺书范文
2014/03/27 职场文书
银行奉献演讲稿
2014/09/16 职场文书
党员组织生活会发言材料
2014/10/17 职场文书
就业推荐表自我评价范文
2015/03/02 职场文书
2015年“我们的节日·重阳节”活动总结
2015/07/29 职场文书
找规律教学反思
2016/02/23 职场文书
2016年第二十五次全国助残日活动总结
2016/04/01 职场文书
Go中的条件语句Switch示例详解
2021/08/23 Golang
Python matplotlib绘制条形统计图 处理多个实验多组观测值
2022/04/21 Python
Golang ort 中的sortInts 方法
2022/04/24 Golang