Ja, da hast Du sicher recht. Dennoch eine Frage: Ich habe versucht, Deinen feedreader in meine Seite einzubauen, wobei ich nicht genau weiß, ob man functions definieren kann, die wiederum andere functions aufrufen. Wenn Du mal Zeit und Lust hast, schau Dir doch einmal an, wie ich das eingebaut habe und welche Fehler ich gemacht habe (musste den Text hier kürzen,weil zu lang).
Wenn Du keine Lust hast, auch ok.
Gruß
newbie1955
PHP-Code:
<?php
ini_set("user_agent", "Mozilla/5.0 (compatible; Feedreader/PHP +".$_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"].")");
header("Content-Type: text/html; charset=UTF-8");
?>
<!DOCTYPE html>
<!--[if lt IE 7 ]><html lang="de" class="no-js ie6" xmlns="http://www.w3.org/2000/xhtml"><![endif]-->
<!--[if IE 7 ]><html lang="de" class="no-js ie7" xmlns="http://www.w3.org/2000/xhtml"><![endif]-->
<!--[if IE 8 ]><html lang="de" class="no-js ie8" xmlns="http://www.w3.org/2000/xhtml"><![endif]-->
<!--[if IE 9 ]><html lang="de" class="no-js ie9" xmlns="http://www.w3.org/2000/xhtml"><![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--><html lang="de" class="no-js" xmlns="http://www.w3.org/1999/xhtml"><!--<![endif]-->
<head>
<title></title>
<!-- Mimic Internet Explorer 9 -->
<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><![endif]-->
<meta name usw......
<?php
function feedreader ($seite)
error_reporting(E_ALL);
$feedt = "Feed - ";
$maxim = 12;
$formu = false;
$descr = true;
$conte = true;
$summa = true;
$maxho = 250;
$maxwe = 250;
define("SCHLIESSE", ">");
?>
<?php
function wandleTags($daten) {
$daten = str_replace("content:encoded", "content", $daten);
$daten = str_replace("dc:creator", "creator", $daten);
$daten = preg_replace_callback("/(&[#a-z0-9]+;)/",
create_function(
'$enti',
'return htmlspecialchars(mb_convert_encoding($enti[1], "UTF-8", "HTML-ENTITIES"));'
), $daten);
/*-- Für den Fall, dass der Feed nur als String ohne Zeilenumbrüche ausgeliefert wird. ----------------------*/
if (strpos($daten, "><item>") !== false) {
$eing = array(
"><item>" => ">\r\n<item>",
"><title>" => ">\r\n<title>",
"><description>" => ">\r\n<description>",
"><content>" => ">\r\n<content>",
"><summary>>" => ">\r\n<summary>>",
"><enclosure>" => ">\r\n<enclosure>",
"><pubDate>" => ">\r\n<pubDate>",
"><updated>" => ">\r\n<updated>",
"><published>" => ">\r\n<published",
"><author>" => ">\r\n<author>",
"><creatorn>" => ">\r\n<creator>"
);
$daten = strtr($daten, $eing);
}
return $daten;
}
?>
<?php
function filtereHTML($daten, $image) {
$daten = preg_replace("/<p.*?>(.+?)<\/p>/is", "$1[br]", $daten);
$daten = preg_replace("/<div.*?>(.+?)<\/div>/is", "$1[br]", $daten);
$daten = preg_replace("/<span.*?>(.*?)<\/span>/is", "$1", $daten);
$daten = preg_replace("/<br.*?>/i", "[br]", $daten);
$daten = preg_replace("/<a href.+?>(.*?)<\/a>/is", "$1", $daten);
if ($image === true) {
$daten = preg_replace("/<img.*?src=\"([a-z0-9_\/=.:;&?-]+?)\.(jpg|png).*?>/is", "[img]$1.$2[/img]", $daten);
}
$eing = array(
"<b>" => "[b]",
"</b>" => "[/b]",
"<i>" => "[i]",
"</i>" => "[/i]",
"<em>" => "[i]",
"</em>" => "[/i]",
"<ul>" => "[ul]",
"</ul>" => "[/ul]",
"<li>" => "[li]",
"</li>" => "[/li]",
"<strong>" => "[strong]",
"</strong>" => "[/strong]",
"{" => "",
"}" => ""
);
$daten = strtr($daten, $eing);
$daten = preg_replace("/<.+?>/is", "", $daten);
return $daten;
}
?>
<?php
function formeHTML($daten) {
$eing = array(
"[br]" => "<br".SCHLIESSE,
"[b]" => "<b>",
"[/b]" => "</b>",
"[i]" => "<em>",
"[/i]" => "</em>",
"[ul]" => "<ul>",
"[/ul]" => "</ul>",
"[li]" => "<li>",
"[/li]" => "</li>",
"[strong]" => "<strong>",
"[/strong]" => "</strong>",
);
$daten = strtr($daten, $eing);
$daten = preg_replace("/[\n]/", "\n\t", $daten);
$daten = preg_replace_callback("/\[img\](.+?)\[\/img\]/",
create_function ('$bilder',
'@$format = getimagesize($bilder[1]);
if($format != false) {
if ($format["mime"] == "image/jpeg" or $format["mime"] == "image/png") {
global $maxho, $maxwe;
$height = $format[1];
$width = $format[0];
if ($height > $maxho){
$height = $maxho;
$prozent = ($format[1] / $height);
$width = ($format[0] / $prozent);
}
if ($width > $maxwe){
$width = $maxwe;
$prozent = ($format[0] / $width);
$height = ($format[1] / $prozent);
}
return "<img src=\"".htmlspecialchars($bilder[1], ENT_QUOTES)."\" alt=\"Bild\"".
" height=\"".round($height)."\" width=\"".round($width)."\"".SCHLIESSE;
}
}'
), $daten);
return $daten;
}
?>
<?php
function formeDatumZeit($daten) {
$daten = preg_replace("/(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})/", "$3.$2.$1 um $4:$5 Uhr", $daten);
$daten = substr($daten, 0, 23);
return $daten;
}
/*-- Die Funktion prüft enthaltene Links auf unerlaubte Zeichen und entfernt diese erforderlichenfalls. ----------*/
function filtereLinks($daten) {
$daten = preg_replace("/[^a-z0-9_\/=.:;&?-]/is", "", $daten);
return $daten;
}
$link = false; // Bekanntmachung der Variablen $link, $lesen und $enco sowie Startwert von $si
$lesen = false;
$image = false; // $image false zuweisen
$enco = "";
$si = 0;
echo "<div class=\"feed\">\n";
if ((@$data = file_get_contents($seite)) != false) {
$pxml = simplexml_load_string(wandleTags($data), "SimpleXMLElement", LIBXML_NOCDATA);
if ($pxml->channel->item) $lesen = $pxml->channel->item;
if ($pxml->entry) $lesen = $pxml->entry;
if ($lesen != false) {
foreach ($lesen as $nachricht) {
if ($nachricht->link) {
if ((string)$nachricht->link) {
$link = $nachricht->link;
}
elseif ($nachricht->link->attributes()) {
$attr = $nachricht->link->attributes();
$link = $attr["href"];
}
}
if ($nachricht->title) {
echo "\x20\x20<h3><a href=\"".htmlspecialchars(filtereLinks($link), ENT_QUOTES)."\" target=\"_blank\">".
formeHTML(htmlspecialchars(filtereHTML($nachricht->title, $image), ENT_QUOTES))."</a></h3>\n";
}
if ($nachricht->description and $descr != false) {
$image = false; // Nur für description erst einmal und falls kein nach Fund auch für content und summary
echo "\x20\x20<p>".formeHTML(htmlspecialchars(filtereHTML($nachricht->description, $image), ENT_QUOTES))."</p>\n";
if ((strpos((string)$nachricht->description, "<img")) !== false) {
$image = false;
}
}
if ($nachricht->content and $conte != false) {
echo "\x20\x20<p>".formeHTML(htmlspecialchars(filtereHTML($nachricht->content, $image), ENT_QUOTES))."</p>\n";
}
if ($nachricht->summary and $summa != false) {
echo "\x20\x20<p>".formeHTML(htmlspecialchars(filtereHTML($nachricht->summary, $image), ENT_QUOTES))."</p>\n";
}
$image = false; // Nur für Fall, das false nicht durch description ausgelöst wurde
$si++;
if ($si == $maxim) {break;
}
}
}
} else { echo "<br".SCHLIESSE."Feed konnte nicht geladen werden!\n";
}
?>
</head>
<body>
<div class="border">
<a href="http://www.focus.de/politik/" target='_blank'>
<img src="logos/focus.jpg" alt="FOCUS" style=" margin:3px 0px 0px -45px ; padding:0px;"/></a>
<ul>
<?php
feedreader ('http://rss2.focus.de/c/32191/f/443313/index.rss');
?>
</div>
Einen Kommentar schreiben: