从YouTube上读取内容时,file_get_contents无法打开流

时间:2014-10-21 04:56:44

标签: php

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

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

但是我收到了这条消息:

  

无法打开流:连接尝试失败,因为   连接方在一段时间后没有正确回应,或者   建立的连接失败,因为连接的主机失败了   响应。

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

2 个答案:

答案 0 :(得分: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不需要任何配置。 一些webhosts会阻止函数files_get_contents,所以每次cURL最好。

为什么file_get_contents不起作用你可以阅读SO ans。

Why doesn't file_get_contents work?

答案 1 :(得分:0)

这里是:

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

它在chrome和firefox中都很完美,我不是什么问题吗? 再检查一次......