#rss #simplepie
#RSS-канал #simplepie
Вопрос:
Итак, вот основной код simplepie, который я пытаюсь использовать, и я действительно не понимаю, как инициализировать другие каналы, которые я настроил. По сути, то, что я пытаюсь сделать, это поместить каждый из этих $feeds в разные divs, чтобы в первом div отображались все 3 канала, а затем по одному div для каждого после этого.
<?php
// Include the SimplePie library
require_once('simplepie.inc');
// Because we're using multiple feeds, let's just set the headers here.
header('Content-type:text/html; charset=utf-8');
// These are the feeds we want to use
$feeds = array(
'SITE ONE URL',
'SITE TWO URL',
'SITE THREE URL');
$feeds2 = array(
'SITE ONE URL');
$feeds3 = array(
'SITE TWO URL');
$feeds4 = array(
'SITE THREE URL');
// This array will hold the items we'll be grabbing.
$first_items = array();
// Let's go through the array, feed by feed, and store the items we want.
foreach ($feeds as $url)
{
// Use the long syntax
$feed = new SimplePie();
$feed->set_feed_url($url);
$feed->init();
// How many items per feed should we try to grab?
$items_per_feed = 3;
// As long as we're not trying to grab more items than the feed has, go through them one by one and add them to the array.
for ($x = 0; $x < $feed->get_item_quantity($items_per_feed); $x )
{
$first_items[] = $feed->get_item($x);
}
// We're done with this feed, so let's release some memory.
unset($feed);
}
// We need to sort the items by date with a user-defined sorting function. Since usort() won't accept "SimplePie::sort_items", we need to wrap it in a new function.
function sort_items($a, $b)
{
return SimplePie::sort_items($a, $b);
}
// Now we can sort $first_items with our custom sorting function.
usort($first_items, "sort_items");
// Begin the (X)HTML page.
?>
Комментарии:
1. также я только что понял, что должен удалить массивы и просто поместить $feed2-> set_feed_url (‘URL ОДНОГО САЙТА’);
Ответ №1:
Я хотел бы помочь, но мне нужно лучше понять, что вы пытаетесь сделать. Насколько я понимаю, вы хотите заполнить верхний div ВСЕМ СОДЕРЖИМЫМ ТРЕХ КАНАЛОВ, а затем, ниже, иметь отдельный div с содержимым каждого из каналов. Нравится:
<div id='feeds'>
feed1-content-1
feed1-content-2
feed1-content-3
feed2-content-1
feed2-content-2
feed2-content-3
feed3-content-1
feed3-content-2
feed3-content-3
</div>
<div id='feeds2'>
feed1-content-1
feed1-content-2
feed1-content-3
</div>
<div id='feeds3'>
feed2-content-1
feed2-content-2
feed2-content-3
</div>
<div id='feeds4'>
feed3-content-1
feed3-content-2
feed3-content-3
</div>
Если это то, что вы хотите, я хотел бы добавить свои 2цента: почему избыточность? Однако только программист действительно знает, чего (ов) он хочет достичь. Мое предложение простое: просто добавьте абзац в divs:
$('#feeds').append('<p>' feed '</p>');
and the appropriate feed into the appropriate div in the same way.
Комментарии:
1. потому что им нужен навигатор с надписью «ВСЕ НОВОСТИ — САЙТ ОДНА НОВОСТЬ — САЙТ ДВЕ НОВОСТИ — САЙТ ТРИ НОВОСТИ», которые я буду скрывать и показывать divs с помощью jquery. Это глупо, я знаю.