解决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 相关文章推荐
基于数据库的在线人数,日访问量等统计
Oct 09 PHP
PHP学习笔记之一
Jan 17 PHP
php中防止恶意刷新页面的代码小结
Oct 31 PHP
如何利用php array_multisort函数 对数据库结果进行复杂排序
Jun 08 PHP
php图像处理函数大全(推荐收藏)
Jul 11 PHP
PHP中VC6、VC9、TS、NTS版本的区别与用法详解
Oct 26 PHP
使用PHP静态变量当缓存的方法
Nov 13 PHP
一个PHP二维数组排序的函数分享
Jan 17 PHP
php中mysql连接方式PDO使用详解
Feb 25 PHP
通过PHP简单实例介绍文件上传
Dec 16 PHP
PHP二维数组排序简单实现方法
Feb 14 PHP
PHP正则之正向预查与反向预查讲解与实例
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
SONY SRF-40W电路分析
2021/03/02 无线电
DOTA2【瓜皮时刻】Vol.91 RTZ山史最惨“矿难”
2021/03/05 DOTA
供参考的 php 学习提高路线分享
2011/10/23 PHP
php的chr和ord函数实现字符加减乘除运算实现代码
2011/12/05 PHP
基于PHP静态类的原罪详解
2013/05/06 PHP
作为PHP程序员应该了解MongoDB的五件事
2013/06/03 PHP
php全角字符转换为半角函数
2014/02/07 PHP
js中的onchange和onpropertychange (onchange无效的解决方法)
2014/03/08 Javascript
node.js中的fs.appendFile方法使用说明
2014/12/17 Javascript
javascript动态创建表格及添加数据实例详解
2015/05/13 Javascript
JavaScript类继承及实例化的方法
2015/07/25 Javascript
js window对象属性和方法相关资料整理
2015/11/11 Javascript
PhotoSwipe异步动态加载图片方法
2016/08/25 Javascript
js实现获取鼠标当前的位置
2016/12/14 Javascript
微信小程序开发(一) 微信登录流程详解
2017/01/11 Javascript
纯JS实现轮播图
2017/02/22 Javascript
详解Node.js实现301、302重定向服务
2017/04/07 Javascript
react native仿微信PopupWindow效果的实例代码
2017/08/07 Javascript
浅谈vue项目优化之页面的按需加载(vue+webpack)
2017/12/11 Javascript
使vue实现jQuery调用的两种方法
2019/05/12 jQuery
解决vue项目运行npm run serve报错的问题
2020/10/26 Javascript
[06:04]DOTA2国际邀请赛纪录片:Just For LGD
2013/08/11 DOTA
Python八皇后问题解答过程详解
2019/07/29 Python
python对接ihuyi实现短信验证码发送
2020/05/10 Python
基于python实现简单网页服务器代码实例
2020/09/14 Python
python中strip(),lstrip(),rstrip()函数的使用讲解
2020/11/17 Python
德国网上药房:Apotal
2017/04/04 全球购物
德国古洛迷亚百货官网:GALERIA Kaufhof
2017/06/20 全球购物
英国森林假期:Forest Holidays
2021/01/01 全球购物
香港百佳网上超级市场:PARKNSHOP.com
2020/06/10 全球购物
机电专业体育教师求职信
2013/09/21 职场文书
护士试用期自我鉴定
2014/02/08 职场文书
解除同居协议书
2015/01/29 职场文书
九不准学习心得体会
2016/01/23 职场文书
2019中秋节祝福语大全,提前收藏啦
2019/09/10 职场文书
利用Python判断整数是否是回文数的3种方法总结
2021/07/07 Python