1

我在我的 MAC osX 中启用了 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

4 回答 4

1

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

编辑您的活动php.ini查找行:

;extension=php_openssl.dll

并取消注释。

编辑:

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

于 2012-11-27T17:27:38.917 回答
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);
于 2014-05-22T09:57:33.517 回答
0

您必须激活 OpenSSL。

;extension=php_openssl.dll

消除 ;

extension=php_openssl.dll

在你的 php.ini 文件中。

于 2012-11-27T17:26:28.303 回答
-1

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

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

于 2012-11-27T17:25:25.600 回答