• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Gaaaanz einfacher RSS Feed

Zeruat

Neues Mitglied
Heyho Leute,
ich suche nach einem Tutorial/fertigen Script um ein Rss Feed in meine Seite einzubauen, d.h. ohne Arrays und komplizierten Funktionen, habe lange nicht mehr mit PHP gearbeitet, deswegen sind meine Kentnisse etwas eingestaubt. Möchte halt einfach nur ein Script, dass mir die neuesten 2 Feeds anzeigt.
 
Sowas kannst Du auch ohne PHP realisieren, wenn Du die Inhalte dann im RSS-Code direkt eingeben willst. PHP könnte dich höchstens bei der Dynamisierung der Inhalte unterstützen, damit Du es einfacher hast diese auszutauschen.

Tipp: schau dir erstmal das pure RSS-Format an. Ist sehr simpel: RSS
 
Mit DOMDocument lässt sich das in PHP recht simpel umsetzen:

Beispiel an Hand eines N24-Feeds:
PHP:
<?php

/* source of a simple RSS-parser */

header("Content-Type: text/html; charset=UTF-8");

function readRss($xml)
{
	$dom = new DOMDocument('1.0', 'UTF-8');
	$dom->loadXML($xml);
	
	$items = $dom->getElementsByTagName('item');
	
	for($i = 0; $i < 2; $i++){
		echo '<h2>'.$items->item($i)->getElementsByTagName('title')->item(0)->nodeValue.'</h2>';
		echo '<p>'.$items->item($i)->getElementsByTagName('description')->item(0)->nodeValue.'</p>';
	}
}

readRss(file_get_contents('http://feeds.n24.de/n24/wirtschaft_boerse?format=xml'));

?>
 
Ahhhh dankeschön, genau so etwas hab ich gesucht :)

EDIT: Bekomm aber folgende Fehlermeldung:
Code:
Warning: Cannot modify header information - headers already sent by (output started at /var/www/web1452/html/index.php:5) in /var/www/web1452/html/index.php on line 15

Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /var/www/web1452/html/index.php on line 28

Warning: file_get_contents(http://feeds.n24.de/n24/wirtschaft_boerse?format=xml) [function.file-get-contents]: failed to open stream: no suitable wrapper could be found in /var/www/web1452/html/index.php on line 28

Warning: DOMDocument::loadXML() [domdocument.loadxml]: Empty string supplied as input in /var/www/web1452/html/index.php on line 18

Fatal error: Call to a member function getElementsByTagName() on a non-object in /var/www/web1452/html/index.php on line 23
 
Zuletzt bearbeitet:
Dann behebe die Fehler.

Vor header-Zeilen darf keine Ausgabe (echo, HTML-Code, …) erfolgen.

Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /var/www/web1452/html/index.php on line 28

Diese Meldung bedeutet, dass du per file_get_contents keine URLs abrufen kannst. Falls du Zugriff auf die Konfiguration hast, kannst du das einschalten.

- PHP: Runtime Configuration - Manual

Falls nicht, musst du einen anderen Weg wählen, um die Daten zu laden.

- PHP: cURL - Manual
- Sockets/Stream PHP: Stream Functions - Manual

Vielleicht in diesem Zusammenhang interessant:

- Zend Framework: Documentation: Zend_Feed - Zend Framework Manual

In der Komponente ist im Grunde alles schon drin. Nur das Aufsetzen ist vielleicht etwas schwierig, wenn man es noch nie gemacht hat.

Alternativ:

- http://simplepie.org/
 
getElementsByTagName('title')->item(0) ist nicht sehr zuverlässig, wenn mehrere Title-Elemente aus anderen Namensträumen in der RSS zu finden sind. lieber getElementsByTagNameNs() (wobei die Frage bleibt, welchen NS hat RSS?) oder Zend_Feed_Reader.
 
Zurück
Oben