prplxr Medlem sedan juni 2012 581 inlägg Frågan 16 okt. 2013 11:26 #1 Hej!
Har skrivit en väldigt simpel men effektiv RSS-läsare. Problemet jag stött på är när ett dokument saknar exempelvis <description>-taggar. Hur hanterar jag detta på bästa sätt? Några idéer eller knuffar i rätt riktning?
Det jag har i nuläget är följande:
<?php
function printRSS($url, $items, $maxlen, $showdesc) {
$xmlDoc = new DOMDocument();
$xmlDoc -> load($url);
$x = $xmlDoc -> getElementsByTagName('item');
for ($i = 0; $i < $items; $i++) {
$title = $x -> item($i) -> getElementsByTagName('title') -> item(0) -> childNodes -> item(0) -> nodeValue;
$link = $x -> item($i) -> getElementsByTagName('link') -> item(0) -> childNodes -> item(0) -> nodeValue;
$desc = $x -> item($i) -> getElementsByTagName('description') -> item(0) -> childNodes -> item(0) -> nodeValue;
$title = utf8_decode($title);
$desc = utf8_decode($desc);
if(strlen($title) > $maxlen) {
$title = substr($title, 0, $maxlen) . "...";
};
echo "<a href=\"{$link}\" target=\"_blank\"><strong>{$title}</strong></a><br />";
if($showdesc) {
if(strlen($desc) > $maxlen) {
$desc = substr($desc, 0, $maxlen) . "...";
};
echo "{$desc}<br />";
};
};
};
?>
prplxr Medlem sedan juni 2012 581 inlägg Kan ju vidareutveckla litet. Det som händer när man försöker hämta värde från
$x -> item($i) -> getElementsByTagName('description') -> item(0) -> childNodes -> item(0) -> nodeValue
så stannar exekveringen om inte <description> finns. Jag vill kunna kontrollera om det elementet existerar.