当URL作为变量时,php file_get_contents错误

时间:2013-08-16 08:45:00

标签: php url variables file-get-contents

我正在努力解决file_get_contents()的奇怪问题 首先,代码从RSS地址加载XML。然后file_get_contents()使用XML中的页面地址获取HTML。

$url = 'http://www.moviejoy.com/rss/index.asp';
$rss = new DOMDocument();
$rss->load($url);

foreach ($rss->getElementsByTagName('item') as $node) {
    $link = $node->getElementsByTagName('link')->item(0)->nodeValue;
    $html = file_get_contents($link);
    print_r($html);
}

这段代码给我一个错误说:

警告:file_get_contents(http://www.moviejoy.com/qnam/view.asp?db=qna&num=2358)[function.file-get-contents]:无法打开流: / [...]中没有此类文件或目录/index.php 135

但是!
当我直接放置URL而不是$ link时,它可以工作。像这样:
$html = file_get_contents(http://www.moviejoy.com/qnam/view.asp?db=qna&num=2358);

我不知道如何解决这个问题。 请帮帮我!

1 个答案:

答案 0 :(得分:0)

您可以在RSS源中看到该链接位于此标记中:

<link>
http://www.moviejoy.com/qnam/view.asp?db=qna&amp;num=2387               
</link>

所以在它之前和之后都有一条新线。您可以通过调用它来获得“干净”链接。所以只需添加:

$link = trim($link);

之后

$link = $node->getElementsByTagName('link')->item(0)->nodeValue;