RSS feed offline? Weet het als eerst!

mei 17th, 2009

RSS feeds zijn een geweldig medium om bijvoorbeeld nieuws op de eigen website te tonen. Het RSS format is een prima standaard en meestal is het publiceren van nieuws geen probleem. Maar wat als de RSS URL veranderd, de Nieuws site offline is of er gewoon geen nieuws meer gepubliceerd wordt?

Een RSS feed die offline is kan op de eigen website problemen opleveren: Het layout breekt uit elkaar of er ontstaat zelf een lelijke foutmelding zijn maar twee van de problemen die een nog zo professionele site slecht laten uitzien.

Een tijd geleden heeft finalwebsites.com een eenvoudig RSS parser script met cache functie gepubliceerd. Dit script voldoet voor de meeste toepassingen en heeft alleen maar simpleXML functies als vereisten (standaard in PHP5). Het eerste gedeelte van het script haald de RSS/XML data op en/of controleert of er nog een cache versie bestaat. De volgende functie maakt een object van de XML data:

$xml = simplexml_load_string($string);

Later in de html gebruikt men een loop (in ons voorbeeld een foreach loop) om de gegevens uit te lezen)

foreach ($xml->channel->item as $val) {
	echo '
	<p><a href="'.$val->link.'" rel="nofollow"><strong>'.$val->title.'</strong></a><br />
	'.$val->description.'</p>';
}

Het laatst hier zou er een probleem ontstaan wanneer de RSS feed niet beschikbaar was. Op deze plek is het handig of beter noodzakelijk een test uit tevoren voordat wij de loop uitvoeren:

if (count($xml->channel->item) >= 0) {
	foreach ($xml->channel->item as $val) {
		echo '
		<p><a href="'.$val->link.'" rel="nofollow"><strong>'.$val->title.'</strong></a><br />
		'.$val->description.'</p>';
	}
} else {
	echo '
	<p><strong>Fout</strong>, RSS feed is momenteel niet beschikbaar.</p>';
}

Nu verschijnt er een melding, maar nu weet de webmaster nog steeds niet van het probleem. Beter zou het zijn om een e-mailbericht te versturen wanneer het mis gaat, dus wij plaatsen de volgende regel voor de foutmelding:

mail('your@mail.nl', 'RSS probleem op '.$_SERVER['HTTP_HOST'], 'Er was geen RSS feed beschikbaar op '.date('Y-m-d H:i:s'), 'From: noreply@'.$_SERVER['SERVER_NAME'].PHP_EOL);

Dit is maar een eenvoudige toch efficiƫnte methode om op de hoogde te blijven over wat er op je website gebeurt. Geen speciale functies, maar wat code op de juiste manier ingezet.

Vragen of opmerkingen over dit code snippet? Gebruik het formulier hieronder of stuur je vragen naar het PHP script forum op finalwebsites.com

Stem of voeg toe aan:  Plaatsen/stemmen op NUjij Plaatsen/stemmen op eKudos Plaatsen/stemmen op MSN Reporter Stumble it! Voeg dit artikel toe aan Del.icio.us Voeg toe aan je Google bladwijzers Verstuur deze pagina per e-mail via Feedburner

Van hetzelfde onderwerp:

Geen reacties op “RSS feed offline? Weet het als eerst!”

Reageer