Hallo,
habe ein script gefunden mit dessen Hilfe ich einen RSS-Feed auslesen kann.
<?php
/*
Nutzung dieses Scripts nur gestattet, wenn Kommentare (PHP und HTML) nicht gelöscht werden, oder ein Link zu folgender Adresse gesetzt wird:
URL: http://www.web-spirit.de/webdesign-tutorial/7/RSS-Feed-auslesen-mit-PHP
Beschreibung: RSS Feed auslesen mit PHP
Autor: Sebastian Gollus
Internet: http://www.web-spirit.de
Version: 1.0.200905
*/
// Funktionsaufruf z.B.: getRssfeed("http://www.web-spirit.de/web-spirit.xml","web-spirit","auto",3,3);
function getRssfeed($rssfeed, $cssclass="", $encode="auto", $anzahl=10, $mode=0)
{
// $encode e[".*"; "no"; "auto"]
// $mode e[0; 1; 2; 3]:
// 0 = nur Titel und Link der Items weden ausgegeben
// 1 = Titel und Link zum Channel werden ausgegeben
// 2 = Titel, Link und Beschreibung der Items werden ausgegeben
// 3 = 1 & 2
// Zugriff auf den RSS Feed
$data = @file($rssfeed);
$data = implode ("", $data);
if(strpos($data,"</item>") > 0)
{
preg_match_all("/<item.*>(.+)<\/item>/Uism", $data, $items);
$atom = 0;
}
elseif(strpos($data,"</entry>") > 0)
{
preg_match_all("/<entry.*>(.+)<\/entry>/Uism", $data, $items);
$atom = 1;
}
// Encodierung
if($encode == "auto")
{
preg_match("/<?xml.*encoding=\"(.+)\".*?>/Uism", $data, $encodingarray);
$encoding = $encodingarray[1];
}
else
{$encoding = $encode;}
echo "<!-- RSS Feed Script von Sebastian Gollus: http://www.web-spirit.de/webdesign-tutorial/7/RSS-Feed-auslesen-mit-PHP -->\n";
//echo "<div class=\"rssfeed_".$cssclass."\">\n";
// Titel und Link zum Channel
if($mode == 1 || $mode == 3)
{
if(strpos($data,"</item>") > 0)
{
$data = preg_replace("/<item.*>(.+)<\/item>/Uism", '', $data);
}
else
{
$data = preg_replace("/<entry.*>(.+)<\/entry>/Uism", '', $data);
}
preg_match("/<title.*>(.+)<\/title>/Uism", $data, $channeltitle);
if($atom == 0)
{
preg_match("/<link>(.+)<\/link>/Uism", $data, $channellink);
}
elseif($atom == 1)
{
preg_match("/<link.*alternate.*text\/html.*href=[\"\'](.+)[\"\'].*\/>/Uism", $data, $channellink);
}
$channeltitle = preg_replace('/<!\[CDATA\[(.+)\]\]>/Uism', '$1', $channeltitle);
$channellink = preg_replace('/<!\[CDATA\[(.+)\]\]>/Uism', '$1', $channellink);
echo '<h1><a href=\"".$channellink[1]."\" title=\"';
if($encode != "no")
{echo htmlentities($channeltitle[1],ENT_QUOTES,$encoding);}
else
{echo $channeltitle[1];}
echo '\">';
if($encode != "no")
{echo htmlentities($channeltitle[1],ENT_QUOTES,$encoding);}
else
{echo $channeltitle[1];}
echo '</a></h1>\n';
}
// Titel, Link und Beschreibung der Items
foreach ($items[1] as $item) {
preg_match("/<title.*>(.+)<\/title>/Uism", $item, $title);
if($atom == 0)
{
preg_match("/<link>(.+)<\/link>/Uism", $item, $link);
}
elseif($atom == 1)
{
preg_match("/<link.*alternate.*text\/html.*href=[\"\'](.+)[\"\'].*\/>/Uism", $item, $link);
}
if($atom == 0)
{
preg_match("/<description>(.*)<\/description>/Uism", $item, $description);
}
elseif($atom == 1)
{
preg_match("/<summary.*>(.*)<\/summary>/Uism", $item, $description);
}
$title = preg_replace('/<!\[CDATA\[(.+)\]\]>/Uism', '$1', $title);
$description = preg_replace('/<!\[CDATA\[(.+)\]\]>/Uism', '$1', $description);
$link = preg_replace('/<!\[CDATA\[(.+)\]\]>/Uism', '$1', $link);
//echo "<p class=\"link\">\n";
echo '<a href=\"".$link[1]."\" title=\"';
if($encode != "no")
{echo htmlentities($title[1],ENT_QUOTES,$encoding);}
else
{echo $title[1];}
echo '\">';
if($encode != "no")
{echo htmlentities($title[1],ENT_QUOTES,$encoding).'</a>\n';}
else
{echo $title[1]."</a>\n";}
echo ' \ ';
//echo "</p>\n";
if($mode == 2 || $mode == 3 && ($description[1]!="" && $description[1]!=" "))
{
echo '<p class=\"description\">\n';
if($encode != "no")
{echo htmlentities($description[1],ENT_QUOTES,$encoding).'\n';}
else
{echo $description[1];}
echo '</p>\n';
}
if ($anzahl-- <= 1) break;
}
//echo "</div>\n\n";
}
$news = htmlentities(getRssfeed("http://www.sport1.de/de_1/fussball/rss.xml","","auto",10,0));
?>
Den durch das Skript generierten html code möchte weiterverwenden und daher nicht vom Server interpretiert haben.
Grundsätzlich funktioniert das ganze ja über htmlentities(). Aber hier will es einfach nicht auch wenn ich " in ' umwandel bzw. " durch ' ersetze.
Hat irgendwiener eine Idee? Ich weiß nicht mehr weiter...