解决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 is_file()和is_dir()用于遍历目录时用法注意事项
Mar 02 PHP
PHP读取PDF内容配合Xpdf的使用
Nov 24 PHP
如何用C语言编写PHP扩展的详解
Jun 13 PHP
zend Framework中的Layout(模块化得布局)详解
Jun 28 PHP
php教程之phpize使用方法
Feb 12 PHP
PHP中调用SVN命令更新网站方法
Jan 07 PHP
php上传文件并存储到mysql数据库的方法
Mar 16 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
Feb 10 PHP
Linux下快速搭建php开发环境
Mar 13 PHP
php中通用的excel导出方法实例
Dec 30 PHP
PHP设计模式之装饰器模式定义与用法详解
Apr 02 PHP
phpstudy2018升级MySQL5.5为5.7教程(图文)
Oct 24 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
Re:从零开始的异世界生活 第2季 开播啦
2020/07/24 日漫
社区(php&&mysql)四
2006/10/09 PHP
文件上传之SWFUpload插件(代码)
2015/07/30 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
2017/09/30 PHP
thinkPHP+LayUI 流加载实现功能
2019/09/27 PHP
sina的lightbox效果。
2007/01/09 Javascript
window.onload 加载完毕的问题及解决方案(下)
2009/07/09 Javascript
解析JavaScript中的不可见数据类型
2013/12/02 Javascript
jQuery实现多按钮单击变色
2014/11/27 Javascript
用javascript实现自动输出网页文本
2015/07/30 Javascript
JS之if语句对接事件动作逻辑(详解)
2017/06/28 Javascript
js使用highlight.js高亮你的代码
2017/08/18 Javascript
jQuery中 DOM节点操作方法大全
2017/10/12 jQuery
vue代理和跨域问题的解决
2018/07/18 Javascript
[02:52]2014DOTA2西雅图国际邀请赛 CIS战队巡礼
2014/07/07 DOTA
[39:02]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs VGJ.T
2018/04/01 DOTA
Python文本相似性计算之编辑距离详解
2016/11/28 Python
人机交互程序 python实现人机对话
2017/11/14 Python
python使用多进程的实例详解
2018/09/19 Python
Django集成CAS单点登录的方法示例
2019/06/10 Python
python threading和multiprocessing模块基本用法实例分析
2019/07/25 Python
对django的User模型和四种扩展/重写方法小结
2019/08/17 Python
Python爬虫爬取煎蛋网图片代码实例
2019/12/16 Python
python实现密度聚类(模板代码+sklearn代码)
2020/04/27 Python
CSS超出文本指定宽度用省略号代替和文本不换行
2016/05/05 HTML / CSS
高校毕业生自我鉴定
2013/10/27 职场文书
国际会计专业求职信
2014/08/04 职场文书
村干部群众路线教育活动对照检查材料
2014/10/01 职场文书
教师个人发展总结
2015/02/11 职场文书
乡镇安全生产月活动总结
2015/05/08 职场文书
2015年管理人员工作总结
2015/05/13 职场文书
单位工资证明范本
2015/06/12 职场文书
运动会通讯稿100字
2015/07/20 职场文书
初三语文教学反思
2016/03/03 职场文书
python实现三次密码验证的示例
2021/04/29 Python
MySQL中正则表达式(REGEXP)使用详解
2022/07/07 MySQL