RSS Feed Datei via PHP ausgeben

A

antihero

Hallo tutorials.de

Ihr kennt sicher alle die beliebten Blogs und ihr wisst sicher auch alle das Blogs so toll sind, weil man dort Feeds, abonnieren kann. Feeds welche die neuen Einträge des Blogs direkt "in die Feedreader" der Abonnenten befördern, einfach gesagt.

Weiss jemand von euch wie man solch einen RSS-Feed mit PHP Ausgabe selber erzeugen kann?

Spezifikationen zu RSS 2.0 gibts hier.
Dort sind auch sample Files zu finden, soweit also kein Problem.

Ich benötige lediglich einen Hinweis, wie ich meinen Feed, resp. meine feed.php Datei nun als "XML" Dokument ausgeben kann. Headerinformationen?! Wenn ja, wie?

Ich hoffe ihr versteht mein Problem anhand dieser Angaben, ansonsten bitte einfach Fragen stellen.

Vielen Dank schonmal an alle welche sich die Mühe machen mitzuhelfen!

MfG antihero
 
Hallo,

Ich habe versucht mithilfe des Tutorials ein rss Script zu schreiben.

Allerdings klappt das nicht so richtig. Es wird kein einziger Eintrag angezeigt

Das Script sieht so aus:

PHP:
<?php header("Content-type: text/xml");
echo '<'.'?xml version="1.0" encoding="ISO-8859-1"?'.'>'; ?>
<rss version="2.0">

<channel>
    <title></title>
    <language>de-ch</language>
    <link>http://www.pudet.de</link>
    <description>Feed zu meinem Blog</description>
    <copyright>Copyright: <?php date(y); ?></copyright>

<?php

 include "inc/config.php";
    @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR
        die("Keine Verbindung zur Datenbank. Fehlermeldung: ".mysql_error());
    mysql_select_db(MYSQL_DATABASE) OR
        die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());

$sql = "SELECT
                    ID,
                    title,
                    descr,
                    date
                FROM
                    news
                ORDER BY
                    date DESC";
                            $result = mysql_query($sql) OR die(mysql_error());
        if(mysql_num_rows($result)) {
            $news_ID   = array();
            $news_title   = array();
            $news_descr  = array();
            $news_date    = array();
            while($row = mysql_fetch_assoc($result)) {
                $news_ID[]   = $row['ID'];
                $news_title[]   = $row['title'];
                $news_descr[]  = $row['descr'];
                $news_date[]    = $row['date'];

            }

            foreach ($news_date as $id => $date) {


echo "<item>      \n";
echo "<title>".$news_title[$id]."</title> \n";
echo "<description>".$news_descr[$id]."</description>    \n";
echo "<pubDate>".$news_date[$id]."</pubDate>   \n";
echo "<guid>http://www.pudet.de//index.php?location=blog&news_id=".$news_ID[$id]."</guid>   \n";
echo "<link>http://www.pudet.de//index.php?location=blog&news_id=".$news_ID[$id]."</link>   \n";
echo "</item>    \n";
}

}


?>
</channel>
</rss>

Hab mal den dynamischen Teil in einer Test.php ausgelagert und er gab Folgendes aus (als quellcode):

HTML:
<item>      
<title>Kakteen im Angebot</title> 
<description>Das ist ein langer Kurztext! Länger geht's momentan nicht. Man denkt gar nicht, wie viel hier so reinpasst. Das ist wirklich eine ganze Menge. Lorem ipsum dolor</description>    
<pubDate>2008-01-29 22:54:51</pubDate>   
<guid>http://www.pudet.de//index.php?location=blog&news_id=18</guid>   
<link>http://www.pudet.de//index.php?location=blog&news_id=18</link>   
</item>    
<item>      
<title>Neues Gesteck</title> 

<description>Seit heute finden Sie in unserem Shop ein neues Gesteck.</description>    
<pubDate>2008-01-29 22:52:18</pubDate>   
<guid>http://www.pudet.de//index.php?location=blog&news_id=17</guid>   
<link>http://www.pudet.de//index.php?location=blog&news_id=17</link>   
</item>    
<item>      
<title>Homepage online!</title> 
<description>Die Gärtnerei Matthey stellt sich auf ihrer Homepage vor!</description>    
<pubDate>2008-01-29 22:48:40</pubDate>   

<guid>http://www.pudet.de//index.php?location=blog&news_id=16</guid>   
<link>http://www.pudet.de//index.php?location=blog&news_id=16</link>   
</item>

Warum werden trotzdem keine Einträge angezeigt?

Vielen Dank für eure Hilfe!
Ich freu mich über jeden Hinweis!
 
Zuletzt bearbeitet:
Hey leute ich breuchte mal dringend hilfe. Meine RSS nachricten werden nicht Korekt ausgegeben.

Mein rss

Unr hier mal mein php cpde

PHP:
<?php
// include
require("../acp/conf/conf.inc.php");
require("../acp/lib/class_mysql.php");
require("../acp/function/global.inc.php");
require("../acp/function/ubb.inc.php");

	// DB
	$db = new db($db_host,$db_user,$db_pass,$db_DB);

	// Config holen
	$cmpxconf = get_conf();

	// Vars Initi
	$maxrss		= 15;
	$uri		= $cmpxconf->url_name;
	$fullsite	= $cmpxconf->url_name;

	$query = $db->query("SELECT *, DATE_FORMAT(insdate, '%a, %d %b %Y %H:%i:%s') as indate FROM {$dbtab["news"]} WHERE is_public='1' AND {$dbtab["news"]}.newskat='1' ORDER BY insdate DESC LIMIT 0,{$maxrss}");
header("Content-type: application/xml");
header("Content-Transfer-Encoding: binary");


echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\r\n";
	echo "<rss version=\"2.0\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\">\r\n\n";
	echo "<channel>\r\n";
		echo "<title>{$cmpxconf->site_name}  RSS-Feed</title>\r\n";
		echo "<link>{$uri}</link>\r\n";
		echo "<description>RSS - Newsfeed von {$cmpxconf->site_name}</description>\r\n";
		echo "<language>de-DE</language>\r\n\n";
		while ($row = $db->fetch_object($query))
		{
			// Username holen
			$uqry = $db->query("SELECT first_name, email FROM {$dbtab["cmpxuser"]} WHERE UserID = '{$row->insuser}'");
			$urow = $db->fetch_object($uqry);
			$db->free_result($uqry);
			
			echo "<item>\r\n";
				echo "<title>".stripslashes($row->newstitel)."</title>\r\n";
				echo "<description>".ubb(smilie(stripslashes($row->shortnews)))."</description>\r\n";
				echo "<pubDate>".$row->indate." GMT</pubDate>\r\n";			
				echo "<link>{$fullsite}</link>\r\n";
				echo "<author>".stripslashes($urow->first_name)."</author>\r\n";
			echo "</item>\r\n";
		}
	echo "</channel>\r\n";
echo "</rss>\r\n";
?>

Würde schön sein wenn mir da einer helfen könnte. Danke
 
Zurück