2016-12-07 5 views
1

Ich brauche Hilfe mit dem Code des RSS-Readers Ich teste auf meiner Website, das Skript funktioniert gut, aber es zeigen 20 feed und ich wollte es auf eine Nummer begrenzen ich gesetzt (wie 3 oder 6 zum Beispiel).Begrenzen Sie die Anzahl der RSS-Feed zu holen

Der Code ist es dies:

<?php 
    //Feed URLs 
    $feeds = array(
     "https://robertsspaceindustries.com/comm-link/rss", 
    ); 

    //Read each feed's items 
    $entries = array(); 
    foreach($feeds as $feed) { 
     $xml = simplexml_load_file($feed); 
     $entries = array_merge($entries, $xml->xpath("//item")); 
    } 

    //Sort feed entries by pubDate 
    usort($entries, function ($feed1, $feed2) { 
     return strtotime($feed2->pubDate) - strtotime($feed1->pubDate); 
    }); 



    ?> 



    <ul><?php 
    //Print all the entries 
    foreach($entries as $entry){ 
     ?> 
     <li><a href="<?= $entry->link ?>"><?= $entry->title ?></a> (<?= parse_url($entry->link)['host'] ?>) 
     <p><?= strftime('%m/%d/%Y %I:%M %p', strtotime($entry->pubDate)) ?></p> 
     <p><?= $entry->description ?></p> 
     <img src="<?= $entry->children('media', true)->content->attributes()->url ?>" alt="" /> 

     </li> 

     <?php 
    } 
    ?> 
    </ul> 

i nach einer Lösung suchen tryed eine Variable, aber ich gescheitert ... Dank für Ihre Hilfe danken! :)

+0

fügen Sie einfach ein 'break' auf der 'foreach', wenn Sie wollen,' $ i = 0; foreach() {$ i ++; wenn i = 3 break} 'oder schneiden Sie das Array, schneiden oder spleißen – Ghost

Antwort

2

Fügen Sie einfach Zähler und einen Bruch in der Schleife, wenn Sie die Ergebnisse einschränken möchten:

<ul> 
<?php 
$i = 0; // 3 - 6 
// Print all the entries 
foreach($entries as $entry) { 
    $i++; 
?> 
    <li> 
     <a href="<?= $entry->link ?>"><?= $entry->title ?></a> (<?= parse_url($entry->link)['host'] ?>) 
     <p><?= strftime('%m/%d/%Y %I:%M %p', strtotime($entry->pubDate)) ?></p> 
     <p><?= $entry->description ?></p> 
     <img src="<?= $entry->children('media', true)->content->attributes()->url ?>" alt="" /> 
    </li> 
<?php 
    if($i === 3) break; 
} 
?> 
</ul> 

Oder schneiden nur das Array array_splice mit:

<ul> 
<?php 
$entries = array_splice($entries, 0, 3); 
// Print all the entries 
foreach($entries as $entry) { ?> 
    <li> 
     <a href="<?= $entry->link ?>"><?= $entry->title ?></a> (<?= parse_url($entry->link)['host'] ?>) 
     <p><?= strftime('%m/%d/%Y %I:%M %p', strtotime($entry->pubDate)) ?></p> 
     <p><?= $entry->description ?></p> 
     <img src="<?= $entry->children('media', true)->content->attributes()->url ?>" alt="" /> 
    </li> 
<?php } ?> 
</ul> 
+0

Vielen Dank Ghost! Du bist ein Genie, es hat funktioniert! Ich habe versucht, die Antwort zu verbessern, aber ich brauche 15 Ruf ... –

+0

@fabiobinotti sicher froh, dass dies geholfen hat – Ghost

Verwandte Themen