您现在的位置: 365建站网 > 365文章 > 解决file_get_contents无法请求https连接的方法

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

文章来源:365jz.com     点击数:427    更新时间:2017-09-22 16:27   参与评论

错误: 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模块,安装好了以后就可以访问了。

安装方法


OpenSSL库的安装

官网:http://www.openssl.org

下载页面:http://www.openssl.org/source/

选择最新版本下载

http://www.openssl.org/source/openssl-1.0.0a.tar.gz

解压:

tar –zxvf openssl-1.0.0d.tar.gz,解压目录为:openssl-1.0.0d

然后进入到 cd openssl-1.0.0d,进行配置、编译、安装

配置

./configure或./config

编译

make

安装

make install

3.如果服务器你不能修改配置的话,那么就使用curl函数来替代file_get_contents函数,当然不是简单的替换啊。还有相应的参数配置才能正常使用curl函数。

对curl函数封装如下:

 

</>code

  1. function http_request($url,$timeout=30,$header=array()){  
  2.         if (!function_exists('curl_init')) {  
  3.             throw new Exception('server not install curl');  
  4.         }  
  5.         $ch = curl_init();  
  6.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
  7.         curl_setopt($ch, CURLOPT_HEADER, true);  
  8.         curl_setopt($ch, CURLOPT_URL, $url);  
  9.         curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);  
  10.         if (!empty($header)) {  
  11.             curl_setopt($ch, CURLOPT_HTTPHEADER, $header);  
  12.         }  
  13.         $data = curl_exec($ch);  
  14.         list($header, $data) = explode("\r\n\r\n", $data);  
  15.         $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);  
  16.         if ($http_code == 301 || $http_code == 302) {  
  17.             $matches = array();  
  18.             preg_match('/Location:(.*?)\n/', $header, $matches);  
  19.             $url = trim(array_pop($matches));  
  20.             curl_setopt($ch, CURLOPT_URL, $url);  
  21.             curl_setopt($ch, CURLOPT_HEADER, false);  
  22.             $data = curl_exec($ch);  
  23.         }  
  24.         if ($data == false) {  
  25.             curl_close($ch);  
  26.         }  
  27.         @curl_close($ch);  
  28.         return $data;  
  29. }

 

如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛

发表评论 (427人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
昵称:
最新评论
------分隔线----------------------------

快速入口

· 365软件
· 杰创官网
· 建站工具
· 网站大全

其它栏目

· 建站教程
· 365学习

业务咨询

· 技术支持
· 服务时间:9:00-18:00
365建站网二维码

Powered by 365建站网 RSS地图 HTML地图

copyright © 2013-2024 版权所有 鄂ICP备17013400号