显示基于其他PHP脚本的RSS源项

时间:2016-07-22 17:58:11

标签: php rss

我想基于其他RSS源在PHP中创建RSS源。这样可行。 但是,现在我想更改新创建的Feed中显示的项目数。这是基于另一个饲料项目的计算。

我使用这个脚本进行计算,效果很好:

<?php
$url = 'http://www.nu.nl/rss/Algemeen';
$xml = simplexml_load_file($url);
$tags = array();
foreach($xml->channel->item as $item) {
    $children = $item->children(); // get all children of each item tag
    foreach ($children as $node) {
        $tags[] = $node->getName(); // get the node name of each children
    }
}
$test = count($tags);
$count = array_count_values($tags); // count the values

?>
<?php
$mystring = count($tags);
$findme   = '3';
$pos = strpos($mystyring, $findme);

?>
<?php
$artikel = ($mystring / 5);
echo $artikel; 
?>

我使用这个脚本,magpierss,创建一个新的feed:

    <?php
/**
 * Setup
 * 
 */
$DOMAIN_NAME = 'http://sitename.nl/';
$FEED_URL = $DOMAIN_NAME . 'rss/full.php';
$SITE_TITLE = 'test';
$SITE_DESRIPTION = '-';
$SITE_AUTHOR = 'test2';

$RSS_CACHE = "/tmp/rsscache";
$RSS_CACHE_EXP = 3600;

$FEED_LIST = array(
    'http://www.nu.nl/rss/Economie',
    'http://www.nu.nl/rss/Internet'
);

/**
 * Do not modify below this point
 * 
 */
define('MAGPIE_CACHE_DIR', $RSS_CACHE);
define('MAGPIE_CACHE_AGE', $RSS_CACHE_EXP);
define('MAGPIE_OUTPUT_ENCODING', 'utf-8');


// include required files 
require_once ('magpierss-0.72/rss_fetch.inc');
include ('feedcreator.class.php');

/* Set RSS properties */
$rss = new UniversalFeedCreator();
$rss->useCached();
$rss->title = $SITE_TITLE;
$rss->description = $SITE_DESRIPTION;
$rss->link = $DOMAIN_NAME;
$rss->syndicationURL = $FEED_URL;
$rss->encoding = 'utf8';

/* Set Image properties 
$image = new FeedImage();
$image->title = $SITE_TITLE . " Logo";
$image->url = $SITE_LOG_URL;
$image->link = $DOMAIN_NAME;
$image->description = "Feed provided by " . $SITE_TITLE . ". Click to visit.";
$rss->image = $image;
*/

function showSummary($url, $num = 10, $showfullfeed = false) {
    global $rss, $DOMAIN_NAME, $SITE_AUTHOR, $SITE_TITLE;
    $num_items = $num;
    @ $rss1 = fetch_rss($url);
    if ($rss1) {
        $items = array_slice($rss1->items, 0, $num_items);
        foreach ($items as $item) {
            $href = $item['link'];
            $title = $item['title'];
            if (!$showfullfeed) {
                $desc = $item['description'];
            } else {
                $desc = $item['content']['encoded'];
            }
            //                $desc .=  '
            //Copyright &copy; <a href="'.$DOMAIN_NAME.'">'.$SITE_TITLE.'</a>.  All Rights Reserved.
            //';
            $pdate = $item['pubdate'];
            $rss_item = new FeedItem();
            $rss_item->title = $item['title'];
            $rss_item->link = $item['link'];
            $rss_item->description = $item['content']['encoded'];
            $rss_item->date = $item['pubdate'];
            $rss_item->source = $DOMAIN_NAME;
            $rss_item->author = $SITE_AUTHOR;
            $rss->addItem($rss_item);


        }

    } else {
        echo "Error: Cannot fetch feed url - " . $url;
    }
}

// Fetch all feeds
foreach($FEED_LIST as $v) showSummary($v);

// Sort items by date
function __usort($ad, $bd) {return strtotime($bd->date) - strtotime($ad->date);}
usort($rss->items, '__usort');

// Display items
$rss->saveFeed("RSS1.0", $RSS_CACHE . "/feed.xml");

我怎样才能让变量$artikel决定Feed中显示的项目数量?

0 个答案:

没有答案