解决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 服务器调试 Zend Debugger 的安装教程
Sep 25 PHP
php 5.3.5安装memcache注意事项小结
Apr 12 PHP
PHP写杨辉三角实例代码
Jul 17 PHP
Apache服务器无法使用的解决方法
May 08 PHP
php读取图片内容并输出到浏览器的实现代码
Aug 08 PHP
PHP 5.3新增魔术方法__invoke概述
Jul 23 PHP
基于php实现七牛抓取远程图片
Dec 01 PHP
PHP给文字内容中的关键字进行套红处理
Apr 12 PHP
PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例
May 17 PHP
PHP7扩展开发之hello word实现方法详解
Jan 15 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
Feb 21 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随机数生成代码与使用实例分析
2011/04/08 PHP
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
2011/11/07 PHP
PHP Directory 函数的详解
2013/03/07 PHP
新浪SAE云平台下使用codeigniter的数据库配置
2014/06/12 PHP
Codeigniter中mkdir创建目录遇到权限问题和解决方法
2014/07/25 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
JSON 入门指南 想了解json的朋友可以看下
2009/08/26 Javascript
javascript 计算两个整数的百分比值
2009/12/26 Javascript
js FLASH幻灯片字符串中有连接符&的处理方法
2012/03/01 Javascript
使用jQuery validate 验证注册表单实例演示
2013/03/25 Javascript
JQuery中form验证出错信息的查看方法
2013/10/08 Javascript
利用Jquery实现可多选的下拉框
2014/02/21 Javascript
jquery自定义右键菜单、全选、不连续选择
2016/03/01 Javascript
实例讲解JavaScript中instanceof运算符的用法
2016/06/08 Javascript
javascript跨域请求包装函数与用法示例
2016/11/03 Javascript
前端开发必知的15个jQuery小技巧
2017/01/22 Javascript
js学习总结_轮播图之渐隐渐现版(实例讲解)
2017/07/17 Javascript
使用D3.js+Vue实现一个简单的柱形图
2018/08/05 Javascript
JavaScript实现小球沿正弦曲线运动
2020/09/07 Javascript
layui数据表格 table.render 报错的解决方法
2019/09/29 Javascript
bootstrap+spring boot实现面包屑导航功能(前端代码)
2019/10/09 Javascript
vue中@change兼容问题详解
2019/10/25 Javascript
layui实现显示数据表格、搜索和修改功能示例
2020/06/03 Javascript
Vue elementui字体图标显示问题解决方案
2020/08/18 Javascript
Python使用函数默认值实现函数静态变量的方法
2014/08/18 Python
利用HTML5中Geolocation获取地理位置调用Google Map API在Google Map上定位
2013/01/23 HTML / CSS
Hotels.com越南:酒店预订
2019/10/29 全球购物
德国户外商店:eXXpozed
2020/07/25 全球购物
医学院毕业生自荐信
2013/11/08 职场文书
出纳岗位职责模板
2013/11/27 职场文书
旅游管理专业生自荐信范文
2014/01/02 职场文书
乐观大学生的自我评价
2014/01/10 职场文书
小学生安全保证书
2014/02/01 职场文书
音乐教师个人总结
2015/02/06 职场文书
远程教育集中轮训基层干部培训班学习心得体会
2016/01/09 职场文书
PL350与SW11的比较
2021/04/22 无线电