2013-08-16 3 views
0

Я борюсь с странной проблемой с file_get_contents().
Во-первых, код загружает XML с адреса RSS. Затем file_get_contents() извлекает HTML, используя адрес страницы из XML.php file_get_contents ошибка, когда URL как переменная

$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-получить содержание]: не удалось не удалось открыть поток: Нет такого файла или каталога в /[...] /index.php on line

Но!
Когда я помещаю URL напрямую, а не ссылку $, он работает. Например:
$html = file_get_contents(http://www.moviejoy.com/qnam/view.asp?db=qna&num=2358);

Я понятия не имею, что делать, чтобы исправить это. Помогите мне, пожалуйста!

+3

Основные отладки: 'var_dump ($ ссылка)'. – Jon

ответ

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; 
+0

Он работает! Спасибо большое! T^T – limminho

Смежные вопросы