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:
und das hier ist das xml-file:
http://www.karneval-kulturen-hamburg.de/forum/rss.php
Gruss
Tim
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">> Zum Forum
</a>
und das hier ist das xml-file:
http://www.karneval-kulturen-hamburg.de/forum/rss.php
Gruss
Tim