当前位置:  编程技术>php

解决file_get_contents无法请求https连接的方法

    来源: 互联网  发布时间:2014-08-26

    本文导语:  错误: 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,就必...

错误: 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("rnrn", $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; 


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • andriod中UIScrollView无法正常滚动的解决方法
  • 无法显示网页验证码问题怎么解决
  • 网页验证码无法显示的解决方法
  • 解决 phpmyadmin #2002 无法登录 MySQL 服务器
  • android真机调试时无法显示logcat信息的解决方法介绍
  • redhat linux挂windows硬盘后无法显示中文 如何解决?
  • 怎么解决无法写nand flash的问题???
  • windows server2012无法连接无线网络解决方法(windows无线连接)
  • JQuery插件fancybox无法在弹出层使用左右键的解决办法
  • IIS7无法读取配置文件解决办法
  • 碰到MySQL无法启动1067错误问题解决方法
  • php的webservice的wsdl的XML无法显示问题的解决方法
  • ubuntu用root登录无法汉化怎么解决?
  • 某些IE客户端无法通过WCF获取数据的解决方法
  • 部署到iis后无法加载运行CSS文件的解决方法
  • SQL Server代理服务无法启动的解决方法
  • MySQL连接无法解析HOST主机名的解决方法
  • Linux下Oracle数据库,dbstart持续不动,数据库无法启动解决
  • IIS打开提示MMC无法创建管理单元的解决方法
  • 安装oracle9时,安装界面的字体无法正确显示,怎么解决啊???
  • Linux菜瓜求救:我在用KDE打开网页浏览器时出错:无法为:text/html创建视图,如何解决?
  • secureCRT下Linux终端汉字乱码解决方法
  • VS2005解决方案管理器中不显示解决方案节点的解决办法
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 有高手能破解RAR的密码吗,至今没有找到人能解决?(先只给10分意思意思,若解决,至少给解决的人500分!说话算话!)
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 解决 select 挡住div的解决方法
  • window.onload事件覆盖掉body onload事件(window.onload和html body onload事件冲突)解决办法
  • 奇怪,怎么“已解决”问题只有4页(10/17日之后的),以前的已解决问题到哪里看?
  • sharepoint 2010中item.Update()和item.SystemUpdate 修改数据版本问题解决
  • 解决!解决!求助如何安装多系统!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3