Php file_get_contents在本地服务器中不起作用

时间:2012-11-27 17:24:04

标签: php macos localhost file-get-contents

我在我的MAC操作系统中启用了php,正常的PHP代码工作正常,但我今天遇到了一个奇怪的错误

<?php 
$hi = file_get_contents("https://ojooo.com");
echo $hi;
?>

对于上面的代码我在我的本地服务器上得到以下错误。但上面的代码在我的托管上工作正常。

Warning: file_get_contents() [function.file-get-contents]: SSL operation failed with code 1. OpenSSL Error messages: error:14077458:SSL routines:SSL23_GET_SERVER_HELLO:reason(1112) in /Library/WebServer/Documents/hi/index.php on line 2

Warning: file_get_contents() [function.file-get-contents]: Failed to enable crypto in /Library/WebServer/Documents/hi/index.php on line 2

Warning: file_get_contents(https://ojooo.com) [function.file-get-contents]: failed to open stream: operation failed in /Library/WebServer/Documents/hi/index.php on line 2

正常file_get_content(https://yahoo.com);工作正常。请帮助我

4 个答案:

答案 0 :(得分:1)

问题是此站点您尝试将重定向调用到SSL(https)。然后你需要php_openssl.dll模块。否则它不起作用。

修改您的有效php.ini找到该行:

;extension=php_openssl.dll

并取消注释。

修改

你可以制作一个phpinfo()并查看输出的顶部。在那里,您可以看到加载了哪个php.ini文件。

答案 1 :(得分:1)

我遇到了同样的问题,最后通过file_get_contents调用替换curl解决了问题。

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_SSLVERSION, 3);
$content = curl_exec($curl);
curl_close($curl);

答案 2 :(得分:0)

您必须激活OpenSSL。

;extension=php_openssl.dll

删除;

extension=php_openssl.dll

在你的php.ini文件中。

答案 3 :(得分:-1)

您的服务器SSL证书似乎有问题,如果甚至应该是一个。

使用$hi = file_get_contents("http://ojooo.com");代替