Ошибка при импорте RSS

Samail
На сайте с 10.05.2007
Offline
369
512

Нашел в интернете код для импорта, подредактировал. Вроде всё работает, но если новостей в фиде меньше чем указано в максимальном количестве то на странице отображаются новости (сколько есть), а в конце странице ошибка:

Fatal error: Call to a member function get_permalink() on a non-object in /var/www/****/thems.php on line 35

Код файла:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="icon" type="image/vnd.microsoft.icon" href="4.ico">
<title>************</title>
</head>

<body>
<style>
html {
overflow-x: hidden;
overflow-y: auto;
}
</style>
<?php
// загрузка библиотеки
require_once $_SERVER['DOCUMENT_ROOT'].'/simplepie/simplepie_1.3.1.compiled.php';
// создание и настройка объекта SimplePie
$feed = new SimplePie();
$feed->set_feed_url('http://*******/'); // путь к rss-каналу
$feed->set_cache_location('cache');
$feed->init();
$feed->handle_content_type();
if ($feed->data) {
// вывод названия канала
echo '
<h1>***********</h1>

';
// вывод не более 5 элементов канала
for ($i=0; $i<5; $i++) {
$item = $feed->get_item($i);
// вывод ссылки и названия новости
echo '<h3><a target="_blank" title="**********" href="'.$item->get_permalink().'">'.$item->get_title().'</a>';

echo ' - <a style="color: #F00" target="_blank" title="**********" href="http://***********/'.$item->get_permalink().'">'.Открыть.' '.анонимно.'</a></h3>';
// вывод описания новости
echo '
<div>'.$item->get_description().'</div><br/>

';
}
}
?>
</body>
</html>

Строка 35:

 echo '<h3><a target="_blank" title="**********" href="'.$item->get_permalink().'">'.$item->get_title().'</a>'; 

Как спрятать эту ошибку?

дани мапов
На сайте с 06.09.2012
Offline
204
#1


// вывод не более 5 элементов канала

foreach ($feed->get_items(0, 5) as $value):
$item = $value->get_feed();


// вывод ссылки и названия новости
echo '<h3><a target="_blank" title="**********" href="'.$item->get_permalink().'">'.$item->get_title().'</a>';

echo ' - <a style="color: #F00" target="_blank" title="**********" href="http://***********/'.$item->get_permalink().'">'.Открыть.' '.анонимно.'</a></h3>';
// вывод описания новости
echo '
<div>'.$item->get_description().'</div><br/>

';
}

если не заработает, второй вариант:


<?php foreach ($feed->get_items(0, 5) as $item):
Написание и доработка скриптов (PHP, MySQL, JavaScript, jQuery) (/ru/forum/811046)
Samail
На сайте с 10.05.2007
Offline
369
#2

Дримвьювер пишет: синтаксическая ошибка

дани мапов
На сайте с 06.09.2012
Offline
204
#3

О господи))


// вывод не более 5 элементов канала
foreach ($feed->get_items(0, 5) as $value) {
$item = $value->get_feed();

или так


// вывод не более 5 элементов канала
foreach ($feed->get_items(0, 5) as $item) {
Samail
На сайте с 10.05.2007
Offline
369
#4

Оба варианта не сработали :(

Vladimir
На сайте с 07.06.2004
Offline
620
#5
Samail:
Оба варианта не сработали :(

$item = $feed->get_item($i);

if (!$item) break;

Аэройога ( https://vk.com/aeroyogadom ) Йога в гамаках ( https://vk.com/aero_yoga ) Аэройога обучение ( https://aeroyoga.ru ) и просто фото ( https://weandworld.com )
Samail
На сайте с 10.05.2007
Offline
369
#6
Nadejda:
if (!$item) break;

Исчезла ошибка. Спасибо.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий