Kjapp og trygg hosting for Wordpress

Trenger hjelp med å hente enclosure fra RSS-feed

spikre

peterhamre.no
Jeg har problemer med å hente ut bilde-elementet (tag: enclosure) fra RSS-feeds. Noen som kan hjelpe meg med å hente ut $bilde? (Jeg regner med det skal legges til en ny "case" i funksjonen characterData, men jeg finner ikke ut hva.)

Eksempelfeed som er brukt under: http://www.nrk.no/nyheter/siste.rss:

HTML:
<enclosure url="http://www.nrk.no/contentfile/imagecrop/1.8253662?cropid=f169w225" type="image/jpeg"/>

Koden jeg bruker ligger under:

PHP:
<?php 
	$insideitem = false; 
	$tag = ""; 
	$title = ""; 
	$description = ""; 
	$link = ""; 
	$dato = "";
	$bilde  = "";
	$antallelementer = 0;
	
	function startElement($parser, $name, $attrs) { 
	global $insideitem, $tag, $title, $description, $link, $dato, $bilde; 
		if ($insideitem) { 
			$tag = $name; 
		} elseif ($name == "ITEM") { 
			$insideitem = true; 
		} 
	} 
	
	function endElement($parser, $name) { 
	global $insideitem, $tag, $title, $description, $link, $dato, $bilde, $antallelementer; 
		if ($name == "ITEM") { 
		
		$antallelementer++;
		
			if ($antallelementer <= 3) {
				printf("<b><a href='%s' target='_blank'>%s</a></b><br />", trim($link),htmlspecialchars(trim($title))); 
				printf("<img src='" . $item->enclosure['url'] . "' height='30px' align='right' \>");
				printf("<span style='font-size: 10px'>");
				printf("<b>KILDE</b> NRK Nyheter<br /> ");
				printf("<b>DATO</b> ". strftime('%H:%M ', strtotime($dato)) ."<br />");
				printf("<i>");
				printf(htmlspecialchars(trim($description))); 
				printf($bilde . "</i></span><hr>");
				
				$title = ""; 
				$description = ""; 
				$link = ""; 
				$dato = "";
				$bilde  = "";
				$insideitem = false; 
			} 
		}
	} 
	
	function characterData($parser, $data) { 
	global $insideitem, $tag, $title, $description, $link, $dato, $bilde; 
		if ($insideitem) { 
			switch ($tag) { 
			case "TITLE": 
				$title .= $data; 
			break; 
			case "DESCRIPTION": 
				$description .= $data; 
			break; 
			case "LINK": 
				$link .= $data; 
			break; 
			case "PUBDATE": 
				$dato .= $data; 
			break; 
			
			} 
		} 
	} 
	
$xml_parser = xml_parser_create(); 
xml_set_element_handler($xml_parser, "startElement", "endElement"); 
xml_set_character_data_handler($xml_parser, "characterData"); 

$fp = fopen("http://www.nrk.no/nyheter/siste.rss","r") or die("Klarer ikke lese feed"); 
while ($data = fread($fp, 4096)) 
	xml_parse($xml_parser, $data, feof($fp)) 
	or die(sprintf("XML feil: %s (linje %d)", 
	xml_error_string(xml_get_error_code($xml_parser)), 
	xml_get_current_line_number($xml_parser))); 
fclose($fp); 
xml_parser_free($xml_parser); 
?>
 
Topp