【问题标题】:file_get_contents failed to open stream when reading content from YouTube从 YouTube 读取内容时,file_get_contents 无法打开流
【发布时间】:2014-10-21 04:56:43
【问题描述】:

我尝试使用 PHP 从任何 URL 读取内容。这是我的代码(本地主机):

$f = file_get_contents('http://www.youtube.com');

但我收到了这条消息:

未能打开流:连接尝试失败,因为 关联方在一段时间后没有正确响应,或 已建立的连接失败,因为连接的主机未能 回应。

当我直接打开http://www.youtube.com/ 时,这很好。所以我的连接没有问题。 这个失败是取决于我的 php 配置还是其他什么?

【问题讨论】:

  • 也为我工作...
  • 是的,它运行良好。
  • 你有没有在你的代码之前启动php???
  • Jonathon Reinhart:同时删除的关于 youtube 保护的答案是正确的。谷歌迅速禁止使用虚拟脚本窃取数据的人。
  • 哦,原来如此。当我在我的校园中使用使用代理的互联网连接时,就会发生这种情况。否则就是成功。所以我现在的问题是如何在我的校园里运行脚本?

标签: php


【解决方案1】:

我只是想建议cURLcURL 是解析网站的最佳方法,而不是 file_get_contents

<?php

$ch = curl_init("http://www.example.com/");
$fp = fopen("example_homepage.txt", "w");

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);
curl_close($ch);
fclose($fp);
?>

http://php.net/manual/en/book.curl.php

http://www.sitepoint.com/using-curl-for-remote-requests/

cURL 不需要任何配置。 一些网络主机阻止了函数 files_get_contents,因此 cURL 每次都是最好的。

为什么 file_get_contents 对此不起作用您可以阅读 SO ans。

Why doesn't file_get_contents work?

【讨论】:

  • 为什么你认为你的代码应该返回不同的结果?
  • 我并不是说我的代码应该返回差异结果。我只是提供另一种选择,并建议文件获取内容是否不起作用。
  • “并建议文件获取内容是否不起作用” --- 好吧,根据我的经验,如果它应该以不同的方式工作,人们会提出不同的建议。所以问题是:为什么您认为您的代码与 OP 的代码不同?
  • example_homepage.txt 对我来说是空的
【解决方案2】:

这里是:

<?php
    echo file_get_contents('http://www.youtube.com');
?>

它在 chrome 和 firefox 中都能完美运行,我不知道你有什么问题? 再看一遍……

【讨论】:

  • 这不是答案
  • 这是我尝试过的,我展示了带有完整 php 标签的代码,这可能是没有得到结果的用户的问题,因为它对我来说工作正常。 ...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-02
  • 2017-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-24
相关资源
最近更新 更多