解决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 相关文章推荐
Win9x/ME下Apache+PHP安装配置
Oct 09 PHP
php执行sql语句的写法
Mar 10 PHP
Discuz 模板语句分析及知识技巧
Aug 21 PHP
非常好用的两个PHP函数 serialize()和unserialize()
Feb 04 PHP
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
May 10 PHP
解决ajax+php中文乱码的方法详解
Jun 09 PHP
php启用zlib压缩文件的配置方法
Jun 12 PHP
php管理nginx虚拟主机shell脚本实例
Nov 19 PHP
PHP也能干大事 随机函数
Apr 14 PHP
php编写批量生成不重复的卡号密码代码
May 14 PHP
PHP实现加强版加密解密类实例
Jul 29 PHP
PHP错误处理函数register_shutdown_function使用示例
Jul 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
PHP判断表达式中括号是否匹配的简单实例
2016/10/22 PHP
如何用PHP做到页面注册审核
2017/03/02 PHP
ThinkPHP框架实现FTP图片上传功能示例
2019/04/08 PHP
PHP中非常有用却鲜有人知的函数集锦
2019/08/17 PHP
PHP字符串与数组处理函数用法小结
2020/01/07 PHP
JQuery Ajax 跨域访问的解决方案
2010/03/12 Javascript
jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
2010/10/15 Javascript
jquery ajax提交整个表单元素的快捷办法
2013/03/27 Javascript
jQuery图片的展开和收缩实现代码
2013/04/16 Javascript
JS获取当前网址、主机地址项目根路径
2013/11/19 Javascript
jQuery层次选择器用法示例
2016/09/09 Javascript
原生js的RSA和AES加密解密算法
2016/10/08 Javascript
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
2016/12/14 Javascript
bootstrap-treeview实现多级树形菜单 后台JSON格式如何组织?
2019/07/26 Javascript
Vue开发环境中修改端口号的实现方法
2019/08/15 Javascript
微信小程序实现手势滑动卡片效果
2019/08/26 Javascript
vue.js实现简单的计算器功能
2020/02/22 Javascript
Python字符串逐字符或逐词反转方法
2015/05/21 Python
Python爬虫DOTA排行榜爬取实例(分享)
2017/06/13 Python
Python3实现的简单三级菜单功能示例
2019/03/12 Python
详解利用python+opencv识别图片中的圆形(霍夫变换)
2019/07/01 Python
python计算Content-MD5并获取文件的Content-MD5值方式
2020/04/03 Python
python使用自定义钉钉机器人的示例代码
2020/06/24 Python
Python sqlalchemy时间戳及密码管理实现代码详解
2020/08/01 Python
美国最大的在线水培用品商店:GrowersHouse.com
2018/08/14 全球购物
加拿大鞋网:Globo Shoes
2019/12/26 全球购物
澳大利亚最早和最古老的巨型游戏专家:Yardgames
2020/02/20 全球购物
优秀学生自我鉴定范例
2013/12/18 职场文书
初中家长寄语
2014/04/02 职场文书
小学生竞选班干部演讲稿(5篇)
2014/09/12 职场文书
简易离婚协议书范本2014
2014/10/15 职场文书
2014年远程教育工作总结
2014/12/09 职场文书
2014年青年教师工作总结
2014/12/17 职场文书
MySQL中in和exists区别详解
2021/06/03 MySQL
关于PostgreSQL JSONB的匹配和交集问题
2021/09/14 PostgreSQL
mybatis-plus模糊查询指定字段
2022/04/28 Java/Android