HTML-site forum


 · Forums · Reactie · Statistieken · Registreren · Zoeken · Regels · Tips · FAQ
HTML-site forum / PHP, ASP etc. / Meerdere RSS feeds inlezen en op volgorde zetten in PHP
Schrijver Bericht
spinlock
Forum Lid

3 posts
# Geplaatst: 25 Jan 2010 16:41 · Aangepast door: spinlock


Hallo,

Zoals de titel al zegt: "Ik wil graag meerdere RSS feeds inlezen met behulp van PHP". Een feed inlezen lukt me wel, alleen de logica ontgaat mij een beetje om 2 in te kunnen lezen.

Wat ik al heb:


php code
<?php
$xml = simplexml_load_file('Feed 1'); // Feed 1
$xml2 = simplexml_load_file('Feed 2'); // Feed 2
 
foreach ($xml->channel->item as $item)
{
    echo "<a href=\"$item->link\">";
    echo $item->title."</a>(".$item->pubDate.")<br>";
}
foreach ($xml2->channel->item as $item2)
{
    echo "<a href=\"$item2->link\">";
    echo $item2->title."</a>(".$item2->pubDate.")<br>";
}
?>



Dit weergeeft keurig alle feeds onder elkaar, dus ook de feeds van Feed 2 worden keurig onder Feed 1 weergegeven op datum.

Maar ik wil graag dat Feed 2 tussen Feed 1 komt en dan sorteren op datum. Weet iemand hier een oplossing voor? Ik zelf weet niet echt hoe ik dat begin kan maken.

Mvg,
SpinLock

 
DNA
Forum Lid

7165 posts
# Geplaatst: 25 Jan 2010 18:16


beide feeds in een array stoppen en die dan weer uitlezen?

egaTniv
Forum Lid

2675 posts
# Geplaatst: 25 Jan 2010 18:39 · Aangepast door: egaTniv


je vergeet het moeilijkste :P
sorteren op datum ^^
Ik ben er ook mee bezig, zal later posten wat ik heb.


edit:

Zoals gezegd prop je de hele feed in een array.
tegelijkertijd houd je een ander array bij, waarin je alleen de datum zet.
Dat datum array gaan we sorteren en daarna de key gebruiken om de feed array te tonen op volgorde van de datumarray.

De datum array moet je als volgt vullen (ik heb het al een beetje gehusselt voor het idee):

php code
//datums zoals ze in een rss feed horen te staan
$datumArray = array(
  3 => strtotime("Sun, 24 Jan 2010 02:53:43 +0100"),
  1 => strtotime("Tue, 19 Jan 2010 06:40:58 +0100"),
  2 => strtotime("Mon, 18 Jan 2010 07:59:32 +0100"),
  0 => strtotime("Thu, 21 Jan 2010 10:14:24 +0100") );
 
arsort($datumArray); //sorteren


Nu kun je met een foreach door de datumarray lopen en de key gebruiken om je "feed"array uit te lezen.

spinlock
Forum Lid

3 posts
# Geplaatst: 25 Jan 2010 18:59 · Aangepast door: spinlock


Ja dankje :) Dat sorten op datum lukt me niet echt nee, dat in array's stoppen heb ik al :)

Alleen bij het sorteren op datum loop ik nogal mee vast nu...:p

EDIT: Ik zal je edit even doorlezen :p

egaTniv
Forum Lid

2675 posts
# Geplaatst: 25 Jan 2010 18:59 · Aangepast door: egaTniv


zie mn edit :p

edit :P

ONGEVEER zou dit moeten werken:
edit:nogmaals geedit ^^

php code
<?php
$xml = simplexml_load_file('Feed 1'); // Feed 1
$xml2 = simplexml_load_file('Feed 2'); // Feed 2
 
$xmlArray = array(); //houd de link, titel en datum bij
 
//houd alleen de datums bij waarop we gaan sorteren
$datumArray = array();
 
 
foreach ($xml as $item)
{
    array_push($xmlArray, "<a href=".$item->link.">".$item->title."</a>(".$item->pubDate.")<br>");
    array_push($datumArray, strtotime($item->pubDate));
}
 
foreach ($xml2 as $item2)
{
    array_push($xmlArray, "<a href=".$item2->link.">".$item2->title."</a>(".$item2->pubDate.")<br>");
    array_push($datumArray, strtotime($item2->pubDate));
}
 
arsort($datumArray);
 
foreach($datumArray as $key =>$val)
{
	echo xmlArray[$val];
}
?>


Reactie

Tekst vet maken  Tekst cursief maken  Tekst onderstrepen  Afbeelding invoegen  Insert YouTube video  Link invoegen  html code invoeren  css code invoeren  php code invoeren   javascript code invoeren  Uitschakelen *Wat is dat?


» Naam  » Wachtwoord 
 Alleen geregistreerde bezoekers kunnen hier een bericht plaatsen. Je kunt inloggen of je hier registreren.

 



Dit forum is gebaseerd op miniBB © 2001-2010

Sponsor: BlueYellow


 

Sitemap

Hoe maak ik mijn website succesvol?

Naam:

Email: