Jesper Schultz skrev:
>> Send lige et link til din phpinfo();
>
>
http://jesperschultz.dk/info.php
>
Super :D Du kan bare slette den igen.
Umiddelbart ville jeg havde brugt cURL til at hente indholdet af de
ønskede feeds, men da du ikke har det på webserveren og safe_mode er sat
til on, så skal vi nok have gang i noget fsockopen.
Jeg har lavet denne funktion:
function getRSSFeed($settings)
{
$url = parse_url($settings["url"]);
$settings["headLen"] = (isset($settings["headLen"])) ?
$settings["headLen"] : 100;
$settings["maxPosts"] = (isset($settings["maxPosts"])) ?
$settings["maxPosts"] : 0;
$host = $url["host"];
$page = $url["path"].$url["query"];
$response = "";
$fp = fsockopen($host, 80, $errno, $errstr, 30);
if (!$fp)
{
return "$errstr ($errno)<br />\n";
}
else
{
$out = "GET ".$page." HTTP/1.1\r\n";
$out .= "Host: ".$host."\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp))
{
$response .= fgets($fp, 128);
}
fclose($fp);
}
$start = strpos($response, "<?xml version=\"1.0\"");
$slut = (strlen($response)- strpos($response, "</rss>") - 6) * -1;
$xml = trim(substr($response, $start, $slut));
$parsed = new SimpleXMLElement($xml);
$news = array();
$tmp = array();
$i = 0;
foreach($parsed->channel->item as $value)
{
$i++;
$tmp["title"] = utf8_decode($value->title);
if(strlen($tmp["title"]) > $settings["headLen"])
$tmp["title"] = substr($tmp["title"], 0, $settings["headLen"]-3)."...";
$tmp["pubDate"] = $value->pubDate;
$tmp["link"] = $value->link;
array_push($news, $tmp);
if($i == $settings["maxPosts"])
break;
}
if(count($news) == 0)
return false;
return $news;
}
Den bruges således:
$feed["url"] = "urlen"; // URL til dit feed
$feed["headLen"] = 100; //Overskriftslængden - standard er 100
$feed["maxPosts"] = 5; //antal nyheder du vil have - standard er 5
$fetched = getRSSFeed($feed);
foreach($fetched as $value)
{
echo $value["title"]; //Overskriften
echo $value["pubDate"]; //Tiden
echo $value["link"]; //Linket
}
Men funktionen ovenfor virker kun på RSS 2.0 feeds og ikke Atom feeds...
--
Dan Storm - storm at err0r dot dk /
http://err0r.dk
Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!