无法使用 file_get_contents(),不返回任何内容

Posted

技术标签:

【中文标题】无法使用 file_get_contents(),不返回任何内容【英文标题】:Unable to use file_get_contents(), returns nothing 【发布时间】:2015-01-21 15:38:11 【问题描述】:

我正在尝试使用此代码从不属于我的网站获取一些数据。

<?
$text = file_get_contents("https://ninjacourses.com/explore/4/");
echo $text;
?>

但是,没有任何内容被回显,字符串长度为 0。

这个方法我以前做过,没问题,但是用这个网站,根本不行。

谢谢!

【问题讨论】:

不要认为它与 HTTPS 一起工作得很好......手册说它在失败时返回 false - 会支付给 var_dump() 输出以确保。类似情况也请参见this article here。 您是否在php.ini 文件中启用了allow_url_fopen 如果您启用 error_reporting 您将看到以下错误:SSL operation failed with code 1. OpenSSL Error messages: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure 我已启用allow_url_fopen。默认开启。 你不能......你必须使用curl 【参考方案1】:

我设法像这样使用curl 获取内容:

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, "https://ninjacourses.com/explore/4/");
$result = curl_exec($ch);
curl_close($ch);

【讨论】:

【参考方案2】:

cURL 是一种您可以从代码中点击 URL 以从中获取 html 响应的方法。 cURL 表示客户端 URL,它允许您连接其他 URL 并在您的代码中使用它们的响应

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, "https://ninjacourses.com/explore/4/");
$result = curl_exec($ch);
curl_close($ch);

我认为这对你有用 curl-with-php 和 another

【讨论】:

以上是关于无法使用 file_get_contents(),不返回任何内容的主要内容,如果未能解决你的问题,请参考以下文章

PHP file_get_contents 函数无法使用 Cloudflare(网络服务器代理)

file_get_contents - 无法打开流:HTTP 请求失败! HTTP/1.1 404 未找到

无法让 cURL 或 file_get_contents 在 PHP 中工作

使用带有file_get_contents的FTP URL包装器时“无法打开流:操作失败”

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

file_get_contents() 如何修复错误“无法打开流”、“没有这样的文件”