RSS-Feeds
RSS-Feeds werden immer
aktueller.
Im Folgenden wird eine Funktion gezeigt, mit der man sehr einfach
RSS-Feeds für die eigene Website erzeugen kann.
Die folgende Funktion erzeugt aus einer Datenbank dynamisch ein RSS-Feed
mit der Endung .xml.
|
Script: |
function mkRSS () {
////KONFIGURATION (diese Variablen müssen angepasst werden):
$dbServer = "localhost"; //database server (meist localhost)
$dbName = "myDB"; //name of database
$dbUser = "me"; // user name
$dbPassword="myPassword"; // user password
$tableName="myTable"; // Tabellenname der Tab.
$lines="10"; // Anzahl anzuzeigender Datensätze
$filename="myFile"; //ohne Extension
$title="z.B. Name der Website myDomain.de"; //Titel des RSS-Feeds
$description="Die ".$lines." besten Links"; //Was zeigt das RSS-Feed?
$language="de"; //Sprachkürzel
$link="http://www.mydomain.de/links.html"; //Link
$itemTitle="..."; //Spaltenname aus der DB, wo der Titel des einzelnen Items steht
$itemText="..."; //Spaltenname aus der DB, wo der Text des einzelnen Items steht
//das SQL-Statement muss an die eigenen Erfordernisse angepasst werden
$sql="SELECT * FROM ".$tableName." Where ... ORDER BY ... DESC/ASC LIMIT 0,$lines";
//Zeile 45 noch die Variable $itemLink angepasst werden muss.
////ENDE KONFIGURATION
//DOCUMENT_ROOT wird automatisch ermittelt
$siteRoot= substr_replace ($_SERVER[DOCUMENT_ROOT].$_SERVER["PHP_SELF"],
"",strrpos ($_SERVER[DOCUMENT_ROOT].$_SERVER["PHP_SELF"], "/")+1);
//Erzeugen des RSS-Inhaltes:
$rssHeader="<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="0.91">
<channel>
<title>".$title."</title>
<description>".$description."</description>
<language>".$language."</language>
<link>$link</link>
";
$rssFooter="</channel>
</rss>";
$dbLink = mysql_connect ($dbServer,$dbUser,$dbPassword) or die (mysql_error());
$setdb = mysql_select_db($dbName,$dbLink) or die (mysql_error());
$result=mysql_query($sql,$dbLink) or die(mysql_error());
$content=$rssHeader;
while($row=mysql_fetch_array($result)){
$titel=substr ($row[$itemTitle], 0, 150); //$row anpassen! auch in der nächsten Zeile
$text=substr ($row[$itemText], 0, 500); //der Text darf höchstens 500 Zeichen
$itemLink="..."; //dies ist ein Link, der DIREKT diesen Punkt auf der Homepage
//Er muss entsprechend deines Scripts dynamisch gebildet werden.
$content.="<item>
<title>".$titel."</title>
<description>".$text."</description>
<link>".$itemLink."</link>
</item>
";
}
$content.=$rssFooter;
//file wird geschrieben
$fh=fopen ($siteRoot.$filename.".rss", "w");
fputs ( $fh, $content);
fclose($fh);
//file wird umbenannt
rename ($siteRoot.$filename.".rss", $siteRoot.$filename.".xml");
return;
}
|
|