Hallo,
Ich habe ein Problem mit meinem RSS Feed. Ich habe es so eingstellt, dass es aus meiner Datenbank die Tabelle "blog" ausliest und die Infos daraus in die <item> Tags schreibt. Das funktioniert auch ganz gut, ausser das <description>-Feld. Wenn ich versuche eine arrayvariable da reinzuschreiben, gibt es mir kein einziges Element mehr aus, sofern der Inhalt der Variable größer ist als 49 Zeichen.
Hier ist der Code meines Feeds:
PHP-Code:
<?php
header("Content-type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>";
require('connection.php');
mysql_select_db("database");
$SqlSelect = "SELECT * FROM blog ORDER BY id DESC LIMIT 0,20";
$result = mysql_query($SqlSelect);
?>
<rss version="2.0">
<channel>
<title>The Bloodtale - Kinerdar's Blog</title>
<image><url>http://www.kinerdar.at/images/banner468.jpg</url></image>
<link>http://www.kinerdar.at</link>
<description>Blogs über einfach alles. Tabu- und Skrupellos.</description>
<language>de-de</language>
<pubDate>2008-05-07</pubDate>
<lastBuildDate></lastBuildDate>
<docs>http://www.kinerdar.at/feed2.php</docs>
<generator>Rss Feed Engine</generator>
<managingEditor>webmaster@kinerdar.at</managingEditor>
<webMaster>webmaster@kinerdar.at</webMaster>
<?php
if (!$result) { die('Invalid query: ' . mysql_error()); }
while ($row = mysql_fetch_assoc($result)) {
?>
<item>
<title><?php echo $row['title']; ?></title>
<link><?php echo "http://www.kinerdar.at/index.php?id=blogc&blogid=".$row['id']; ?></link>
<pubDate><? echo $row['tmstmp']; ?></pubDate>
<description><? echo $row['short']; ?></description>
</item>
<?php
}
mysql_free_result($result);
mysql_close($dbh);
?>
</channel>
</rss>
Die Variable
$row['short'] ist eine Kurzbeschreibung des Blogs, die etwa 400-500 Zeichen umfasst und bei den älteren Blogs nicht vorhanden ist, was aber nicht der Grund für die Fehlfunktion sein kann, da es ja ausgegeben wird, wenn ich die Zeichenanzahl mit substr auf 49 limitiere. Allerdings sind 49 Zeichen viel zu wenig für eine, wenn auch kurze, Beschreibung.
Noch eine Info: Wenn ich statischen Text in das Feld eintrage, kann dieser locker mehr als 49 Zeichen haben und wird trotzdem ausgegeben. Nur mit der Arrayvariable klappts nicht.
Ich bin echt ratlos. Falls jemand eine Ahnung hat, warum das nicht funktioniert, bitte postet es. Ich bin für jede Hilfe dankbar.