Einbinden von XML-News-Feeds mit PHP
Dienstag, 01. Juni 2004 11:47
Wer seine eigene Homepage um ein stets aktuellen News-Kanal erweitern will, und sich nicht um die Pfege der News kümmern will -
aber auch nicht auf vorgegebene Newsticker zurückgreifen will, kann auf diverse XML-Feeds zugreifen.
Die News können dann beliebig im eigenen Design eingebunden werden.
Eine Auswahl an möglichen/kostenlosen XML-Feeds gibt es z.B. bei http://www.xmlfeeds.de
Eine einfache Möglichkeit News aus einem XML-Feed mit PHP auszulesen:
Was man natürlich braucht ist Webspace mit PHP
1. nach Auswahl des gewünschten News-Feeds, wird der Inhalt der XML-datei eingelesen.
$sXMLSource = "http://mag.fussball-forum.de/magazin.xml";
//get file-content
$sContent = implode('',file($sXMLSource)) or print("z.Zt. keine News<br>vorhanden.");
2. mit PHP wird der XML-Content geparst
$hParser = xml_parser_create();
xml_parse_into_struct($hParser,$sContent,$aData,$index);
xml_parser_free($hParser);
3. nur noch den gewünschten Inhalt rauspicken
foreach($aData as $aRow)
{
foreach($aRow as $sData)
{
if($sData == 'TITLE')
$sTitle = $aRow['value'];
if($sData == 'DESCRIPTION')
$sDescription = $aRow['value'];
if($sData == 'LINK')
echo "<a class=\"news\" href=\"". $aRow['value'] ."\" target=\"_BLANK\">". $sTitle
."</a><br>". $sDescription ."<hr>";
}
}
hier kann man natürlich auch nur die Titel der News mit entsprechendem Link ausgeben
der Link geht dann üblicherweise auf die Internetseiten des Anbieters.
das komplette Script:
$sXMLSource = "<Pfad zur XML-Datei>";
//get file-content
$sContent = implode('',file($sXMLSource)) or print("z.Zt. keine News<br>vorhanden.");
//parse xml-page
$hParser = xml_parser_create();
xml_parse_into_struct($hParser,$sContent,$aData,$index);
xml_parser_free($hParser);
foreach($aData as $aRow)
{
foreach($aRow as $sData)
{
if($sData == 'TITLE')
$sTitle = $aRow['value'];
if($sData == 'DESCRIPTION')
$sDescription = $aRow['value'];
if($sData == 'LINK')
echo "<a class=\"news\" href=\"". $aRow['value']
."\" target=\"_BLANK\">". $sTitle
."</a><br>". $sDescription ."<hr>";
}
}