Возникли проблемы при попытке отобразить несколько простых RSS-каналов, а также один объединенный - PullRequest
0 голосов
/ 08 ноября 2011

Итак, вот основной простой код, который я пытаюсь использовать, и я не совсем понимаю, как инициализировать другие каналы, которые я настроил. По сути, я пытаюсь поместить каждый из этих $ лент в разные div, чтобы первый 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 Ответ

0 голосов
/ 08 ноября 2011

Я хотел бы помочь, но мне нужно лучше понять, что вы пытаетесь сделать.Насколько я понимаю, вы хотите заполнить верхний элемент 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цента: почему избыточность?Тем не менее, только кодер действительно знает, чего он хочет достичь.Мое предложение простое: просто добавьте абзац в div:

$('#feeds').append('<p>'+feed+'</p>');
and the appropriate feed into the appropriate div in the same way.
...