Разбор RSS-канала с помощью SimpleXML - PullRequest
0 голосов
/ 13 ноября 2011

Когда я запускаю этот код:

<?php
$rss = simplexml_load_file('http://stackoverflow.com/feeds');
?>
<h1><?php echo $rss->title; ?></h1>
<ul>
<?php
foreach($rss->entry as $e) {
    echo "<li><a href=\"".$e->link['href']."\">";
    echo $e->title;     
    echo "</a></li>\n";
}    
?>
</ul>

Он генерирует следующую ошибку:

Warning: simplexml_load_file(http://stackoverflow.com/feeds) [function.simplexml-load-file]: failed to open stream: Permission denied in /home/www/cheapflightshunt.co.uk/aaaa.php on line 2

Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "http://stackoverflow.com/feeds" in /home/www/cheapflightshunt.co.uk/aaaa.php on line 2

Warning: Invalid argument supplied for foreach() in /home/www/cheapflightshunt.co.uk/aaaa.php on line 7

Мой общий хостинг работает с PHP5.2.17

Пожалуйста, укажитерешение.

Заранее спасибо.

1 Ответ

1 голос
/ 13 ноября 2011

Ваш код работает отлично. Я подозреваю, что ваши текущие настройки не позволяют разрешить fopen over url

Попробуйте проверить это.

Если вы не можете изменить эту настройку, попробуйте CURL, вместо этого:

<?php
$ch = curl_init('http://stackoverflow.com/feeds');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
curl_close($ch);
$rss = new SimpleXMLElement($data);
?>
<h1><?php echo $rss->title; ?></h1>
<ul>
<?php
foreach($rss->entry as $e) {
    echo "<li><a href=\"".$e->link['href']."\">";
    echo $e->title;     
    echo "</a></li>\n";
}    
?>
</ul>
...