Navigation
 Startseite
 Fachbücher
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 ICQ Generator
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog‑Verzeichnis

Partner
 Sprüche Treff

Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains und...
https://www.Hosterplus.de
Artfiles.de
Bietet Serviceorientierte Internetdienstleistungen...
https://www.Artfiles.de
 
 
 

Externen RSS Feed in Homepage über PHP einbinden

Sie befinden sich: Home > Php Tutorial > Externen RSS Feed in Homepa...

Externen RSS Feed in Homepage über PHP einbinden


Eintrag am:  27.10.2010
Hits / Besucher:  16342
Sprache:  Deutsch
Kategorie:  Einsteiger Tutorials...
Tutorial Art:  eigenes
Eingetragen von   schubertmedia schubertmedia
 
Beschreibung

So in diesem PHP Tutorial möchte ich euch zeigen, wie Sie einen externen RSS-Feed auf eurer eigenen Homepage einbinden könnt. Dieses Tutorial setzt darauf auf, dass ihr bereits euch mit dem Tutorial „Datei Cache mit PHP erstellen“ auseinandergesetzt habt. Gut fangen wir an mit der Materie, um Daten von einem externen Feed einzulesen, benötigen wir die Adresse, wo wir die Daten abfragen wollen.

In unserem Beispiel verwenden wir den Webmasterfeed von dieser Seite. Dieser Feed wird als ISO-Datei ausgeliefert, da ich bei meiner Testmaschine Xampp verwenden und diese mit dem Zeichensatz UTF-8 arbeitet, müssen wir die Ausgabe vorher konvertieren. Dazu habe ich im nachfolgenden Script, die PHP-Funktion iconv() verwendet. Sicherlich kann es bei den ein oder anderen zu anderen Verschiebungen kommen.

Daher sollte ihr als Erstes in den Quelltext des Feeds schauen und prüfen, welcher Zeichensatz bei dem Feed verwendet wird. Danach müsst ihr überprüfen, ob der gleiche Zeichensatz auf euren Webserver läuft. Wenn ihr unterschiedliche Zeichensätze habt, kann es passieren, dass die Umlaute bzw. Sonderzeichen sehr kryptisch aussehen.

Hier das Script:

<?php

/**
* Include der Cache Funktionen
*/
include('function.php');
/**
* ISO zu Utf8 umwandeln
* 1 = ja, 2 = nein
*/
$iso_to_utf8 = 1;
/**
* Name der Cachedatei
*/
$dateiname = 'feed';
/**
* Url zum Feed
*/
$feed = 'https://www.php-space.info/feed.xml';
/**
* Wie oft der Feed abgefragt werden soll, in
Sekunden
* 300 = 5 Min
*/
$cachzeit = 300;
/**
* Status ausgeben, wann der Feed das letzte mal
eingelesen wurde
* 1 = ja, 2 = nein
*/
$status = 2;
/**
* Prüfen, ob eine Cachedatei geschrieben werden muss
*/
if (cachen_check($dateiname, $cachzeit ) == true) {
$ausgabe = '';
/**
* Mit der PHP Funktion simplexml_load_file()
wird der Feed eingelesen und in der
Variable $xml als Objekt hinterlegt.
Sollte es Fehler beim Einlesen geben,
gibt die PHP Funktion
simplexml_load_file() ein false zurück.
*/
$xml = @simplexml_load_file($feed,
"SimpleXMLElement", LIBXML_NOCDATA);
/**
* Nun prüfen wir, ob ein false zurückgegeben
wurde
*/
if ($xml === false) {
$ausgabe .= 'Fehler beim Einlesen des
Feed! Prüfen Sie die Url zum Feed
oder ob es den Feed noch gibt.<br>';
} else {
/**
* Wenn kein false von der PHP Funktion
simplexml_load_file() zurückgegeben
wurde, durchlaufen wir mit einer
foreach das Array, was in dem Objekt
$xml->channel->item gespeichert wurde.
*/
foreach($xml->channel->item as $k => $v) {
/**
* Jetzt wird in der Variable $ausgabe
unserer Ausgabe gespeichert.
*/
$ausgabe .= '- <a href="'.$v->link.'"
target="_blank"
title="'.$v->title.'">'.$v->title.
'</a><br>';
}
/**
* Jetzt prüfen wir die Variable
$iso_to_utf8, ob wir unsere Ausgabe
in einen anderen Zeichensatz
umwandeln wollen.
*/
if ($iso_to_utf8 == 1) {
/**
* Ausgabe ISO zu UTF-8 umwandeln
*/
$ausgabe = iconv("UTF-8",
"ISO-8859-1//TRANSLIT", $ausgabe );
}
}
/**
* Hier wird geprüft, ob ein Statusmeldung vom
Feed ausgegeben werden soll.
*/
if ($status == 1)
$ausgabe .= '<p>Der Feed wurde am
'.date("d-m-Y \u\m H:i:s").' Uhr das
letzte mal eingelesen.</p>';
/**
* Cache schreiben
*/
cachen($dateiname, $cachzeit , $ausgabe );
} else {
/**
* Cache lesen
*/
$ausgabe = cachen($dateiname, $cachzeit , '' );
}
/**
* Text ausgeben
*/
echo $ausgabe;
?>

Erklärung:

Jetzt kommen wir zu der Erklärung, wie Sie im oberen Teil sehen, habe ich ein include() eingebaut. Dort lade ich die Funktionen von dem vorhergehenden Tutorial. Diese Funktionen werden benötigt, um den Cache zu prüfen, oder zu erstellen. Im nächsten Abschnitt habe ich die Variable $iso_to_utf8 definiert, diese können Sie so lassen.

Nachdem Sie, das Script auf den Server geladen haben und die Umlaute kryptisch dargestellt werden, sollte Sie gegebenenfalls den Wert ändern auf 2. Dadurch wird iconv() nicht verwendet und die Ausgabe nicht umgewandelt. Mit der Variable $dateiname definieren ich meine Cachedatei, wo entsprechend die Ausgabe zwischengespeichert wird. Es wäre möglich hier zusätzlich den Namen mit der PHP-Funktion md5() verschlüsseln, damit niemand zu schnell auf den Namen unserer Cachedatei kommt. Ob dies aber Sinn ergibt, sein dahin gestellt. :)

In der nächsten Zeile definiere ich in der Variable $feed unserer Adresse zu der XML-Datei. Diesen Pfad könnt ihr x-beliebig anpassen, wichtig ist hierbei, dass die Datei wirklich vorhanden ist. Über die nächste Variable $cachzeit können Sie die Zeit definieren, wie lang unser Cache verwendet werden soll. Die Zeit wird in Sekunden angegeben. Zum Beispiel, wenn Sie 300 der Variable hinterlegt werden dies 5 min. Um das Script zu prüfen, gibt es die Variable $status, wo Sie den Wert 1 oder 2 definieren können. Wenn Sie den Wert auf 1 stellen, wird unter der Ausgabe des Feeds, die Aktualisierungszeit mit ausgegeben. Dies ist hilfreich, um herauszufinden, ob der Feed zuletzt aktualisiert wurde. Wenn ihr diese Meldung nicht angezeigt haben wollt, können Sie die Variable auf 2 belassen.

Auf den weiteren Code gehe ich nicht mehr im Detail ein, da ich bereits ausführliche Kommentare geschrieben habe. Ich hoffe, Sie verstehen meine Kommentare. xD

Als kleine Anmerkung für die Leute, die dieses Skript nicht unter Windows einsetzen. Ihr müsst entsprechend der Cachedatei sowie der Datei, wo der Code entsprechend eingebunden wurde, die Rechte 777 oder für die Sicherheitsfreaks 755 geben, da andernfalls PHP keine Schreibrechte hat. So dies soll es erst gewesen sein und ich hoffe, Sie könnten mit diesem kleinen Tutorial etwas anfangen. Wenn Sie noch weitere Fragen zu diesem Tutorial haben sollten oder vielleicht sogar einen Fehler gefunden haben, würde ich mich freuen, wenn Sie sich im Forum melden.

 

Tags:

 

Artikel hinzufügen bei: