RSS "Description" in PHP File kürzen?

T

tboenigk

Hallo, ist es möglich, die Zeichenanzahl der anzuzeigenden Description der Items auf eine bestimmte Zeichenanzahl zu begrenzen? Es geht um http://www.kdkhh.de. Links ist eine Box "Neu im Forum". Wenn ich dort das Vollständige XML des Forums einbinde kann es sehr lang werden, da der gesamte Beitrag anzeigt wird. Ich würde es gerne kürzen. Die Einbindung geschieht so:

Code:
<?
$rss_url = $page["page_text5"];
if ($rss_url == "")
{
	$rss_url = "http://www.karneval-kulturen-hamburg.de/forum/rss.php"; // URL des Newsfeeds
}
$counter = 0;
$_item = array(); 
$_depth = array(); 
$_tags = array("dummy"); 

function initArray()
{ 
	global $_item; 
	$_item = array ("TITLE"=>"", "LINK"=>"", "DESCRIPTION"=>"", "URL"=>""); 
}

function startElement($parser, $name)
{ 
	global $_depth, $_tags, $_item, $counter; 

	if (($name=="ITEM") || ($name=="CHANNEL") || ($name=="IMAGE")) 
	{ 
		initArray(); 
	} 
	@$_depth[$parser]++; 
	array_push($_tags, $name); 
} 

function endElement($parser, $name)
{ 
	global $_depth, $_tags, $_item, $counter, $max_items; 
	
	array_pop($_tags); 
	$_depth[$parser]--; 
	switch ($name) 
	{ 
		case "ITEM": 
		if ($counter < $max_items)
		{
			echo "<p class='boxtext'><b>{$_item['TITLE']}</b><br>{$_item['DESCRIPTION']}</p>\n"; 
		}	
		$counter++;
		initArray(); 
		break; 
	} 
}

function parseData($parser, $text)
{ 
	global $_depth, $_tags, $_item; 

	$crap = preg_replace ("/\s/", "", $text); 
	/* is the data just whitespace? 
	if so, we don't want it! */ 

	if ($crap) 
	{ 
		$text = preg_replace ("/^\s+/", "", $text); 
		/* get rid of leading whitespace */ 
		if (@$_item[$_tags[$_depth[$parser]]]) 
		{ 
			$_item[$_tags[$_depth[$parser]]] .= 
			$text; 
		} 
		else 
		{ 
			$_item[$_tags[$_depth[$parser]]] = 
			$text; 
		} 
	} 
} 

function parseRDF($file)
{ 
	global $_depth, $_tags, $_item, $max_items; 

	$xml_parser = xml_parser_create(); 
	initArray(); 

	/* Set up event handlers */ 
	xml_set_element_handler	($xml_parser, "startElement", "endElement"); 
	xml_set_character_data_handler ($xml_parser, "parseData"); 

	/* Open up the file */ 
	$fp = fopen ($file, "r") or die ("Could not open $file for input"); 

	while ($data = fread ($fp, 4096)) 
	{ 
		if (!xml_parse($xml_parser, $data, feof($fp))) 
		{ 
			die (sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code ($xml_parser)), xml_get_current_line_number($xml_parser))); 
		}
	} 

	fclose($fp); 
	xml_parser_free($xml_parser); 
}

parseRDF("$rss_url");
?></span>
<a href="http://www.karneval-kulturen-hamburg.de/website.php?id=/index/dialog01/03" class="boxtext">&gt; Zum Forum
</a>

und das hier ist das xml-file:
http://www.karneval-kulturen-hamburg.de/forum/rss.php

Gruss
Tim
 
Zurück