SetaPDF
Aktuelles
Startseite
TP Wettbewerbe
Sitemap
Service
Hilfe-Forum
Kolumnen
Linktipps
Buchrezensionen
Traum-Team
Newsletter
Traumquelle
Dreamweaver
Fireworks
Photoshop
Flash
Traum-Start
gimp
GoLive
php / Apache
Sonstige
Grundlagen
Usability
CSS
Apple / Mac
3D
Intern
TP-Sponsor
TP SHOP
Bild Galerie
TP Wallpapers
Forum-Archiv
Link zu uns
Impressum
Zurück  
TP Portal > php / Apache > Wie bindet man Feeds in eine PHP Seite ein?

Wie bindet man Feeds in eine PHP Seite ein?

Oft besteht ja eine Internet Präsens aus mehreren Bereichen.
EinfachenSeiten, Blog, Galerie usw. bilden die gesamte Seite. Meistens
möchteman die verschiedenen Skripte miteinander verbinden, mindestens
aber die Daten auf der Startseite zusammengefasst darstellen.

Für diesesTutorial gehen wir mal davon aus, wir haben

  • einen statischen Bereich, mit festen Seiteninhalten
  • einer Blog Installation
  • einer Galerie
  • und einem Forum

Alle Installationen sind erfolgt und laufen einwandfrei unter folgender Ordnerstruktur:

..
/blog/
/forum/
/gallery/
index.php
impressum.php

Auf der index.php (der Startseite beim Domainaufruf) sollen nun die dieneusten News aus den verschiedenen Bereichen erscheinen. Dazu könnteman nun eine Abfrage an die verschiedenen Datenbanken programmieren unddieses anzeigen. Dazu müsste man sich jedoch mit jeder der Datenbankenauseinander setzen, deren Strukturen total unterschiedlich sind. Undsollte ein Update des Skriptes veröffentlicht werden, geht nichts mehr,da die Datenbank umgestellt wurde. Der einfache Weg ist, auf eineSchnittstelle zurückzugreifen z.B. auf die Feeds der Skripte und nutztdiese für eine solche Aufgabe.
Der Vorteil liegt klar auf der Hand: Man braucht nur einmal etwaseinzusetzen und kann es dann für alle „internen” Feeds und auch externeFeeds* benutzen.

Wir verwenden nun für diese Aufgabe Magpie RSS - PHP RSS Parser.
Die hier herunter geladenen Daten werden dazu in den Unterordnermagpierss gespeichert, wodurch die neue Struktur wie folgt aussieht:

..
/blog/
/forum/
/gallery/
/magpierss/
index.php
impressum.php

Nun muss die index.php editiert werden, um das Skript einzubinden unddie Daten auszugeben. Als erstes muss magpierss aus dieser Seitegeladen werden. Dazu muss die Datei rss_fetch.inc geladen werden.

php
  1. <?php
  2. require_once 'magpierss/rss_fetch.inc';
  3. ?>

Anschließend müssen die Feeds, die genutzt werden sollen geladen werden und notfalls etwas angepasst werden.

php
  1. <?php
  2. $rss_url = 'http://yourhp.de/blog/feed/';
  3. $my_rss = fetch_rss($rss_url);
  4. $my_rss->items = array_slice($my_rss->items, 0, 3);
  5. ?>

 

In der ersten Zeile sollte die Adresse deines Feeds stehen. Hier sind z.B. aus WordPress raus auch Kategorie- Feeds möglich.

In der dritten Zeile wird der Feed passend zu unserer Darstellung

gekürzt. Hier wird gestartet vor dem ersten Beitrag durch die 0 und

inklusive des dritten durch die 3.

Nun liegen die Beiträge in dem Array $my_rss und müssen nur noch

dargestellt werden. Dieses geschieht am besten mit einem Durchlauf

durch das Array.

php
  1. <dl>
  2. <?php
  3. foreach ($my_rss as $item) {
  4. $title = $item['title'];
  5. $url = $item['link'];
  6. $description = $item['description'];
  7. ?>
  8. <dt><a href="<?php print"$url"; ?>"><?php print"$title"; ?></a></dt>
  9. <dd><?php print"$description"; ?></dd>
  10. <?php
  11. }
  12. ?>
  13. </dl>

Dafür werden für jeden Beitrag im Array der Titel, die Adresse undder Text genommen und als HTML ausgegeben. Der Titel dann als„Überschrift” mit Link gesetzt und anschließend die Beschreibungangezeigt.

Das Teilskript ab dem Einladen des Feeds bis zur Ausgabe kann nunbeliebig oft mit verschiedenen Feeds wiederholt werden. So kann hierz.B. der Feed der Galerie und des Forums zusätzlich genutzt werden oderdas ganze ein bisschen modifiziert werden:

php
  1. <?php
  2. require_once 'magpierss/rss_fetch.inc';
  3. $news_url = 'http://yourhp.de/blog/category/news/feed';
  4. $news_rss = fetch_rss($news_url);
  5. $two_news = array_slice($news_rss->items, 0, 2);
  6. $rest_news = array_slice($news_rss->items, 2, 10);
  7. $important_url = 'http://yourhp.de/blog/category/important/feed';
  8. $important_rss = fetch_rss($important_url);
  9. $important_rss->items = array_slice($important_rss->items, 0, 3);
  10. ?>
  11. <dl>
  12. <?php
  13. foreach ($two_news as $item) { // zeige erste News
  14. $title = $item['title'];
  15. $url = $item['link'];
  16. $description = $item['description'];
  17. ?>
  18. <dt><a href="<?php print"$url"; ?>"><?php print"$title"; ?></a></dt>
  19. <dd><?php print"$description"; ?></dd>
  20. <?php
  21. }
  22. ?>
  23. </dl>
  24. <hr size="1" noshade="noshade" />
  25. <div style="float:left; position:relative; width:50%;">
  26. <dl>
  27. <?php
  28. foreach ($rest_news as $item) { // Liste restliche News
  29. $title = $item['title'];
  30. $url = $item['link'];
  31. $description = $item['description'];
  32. ?>
  33. <dt><a href="<?php print"$url"; ?>"><?php print"$title"; ?></a></dt>
  34. <?php
  35. }
  36. ?>
  37. </dl>
  38. </div>
  39. <div style="float:right; position:relative; width:50%;">
  40. <dl>
  41. <?php
  42. foreach ($important_rss->items as $item) { // zeige wichtige Dinge
  43. $title = $item['title'];
  44. $url = $item['link'];
  45. $description = $item['description'];
  46. ?>
  47. <dt><a href="<?php print"$url"; ?>"><?php print"$title"; ?></a></dt>
  48. <dd><?php print"$description"; ?></dd>
  49. <?php
  50. }
  51. ?>
  52. </dl>
  53. </div>

Viel Spass (the0bone)

Beispiele: bushidokarate.de

* Externe Feeds unterliegen meistens Urheberrechten. Bitte vor dem Einbinden von externen Feeds prüfen, ob dieses erlaubt ist.

Buchrezension

Coverimage
AJAX Hacks
Dynamische Webseiten mit AJAX programmieren - dieses Handbuch bietet einen praktischen Einblick.
[mehr]
Gimahhot - Shopping


Ferienwohnungen
TP-Partner
Sprachreise London
Webmasterpro
Computerhilfen
Computerhilfen
Eventagentur Hamburg
it-rechtsinfo.de
Designguide
Getreidemühlen
sk-typo3
Kochkurs Berlin
Maandiko.de
d. Webdesigner
PSD Tutorials
Medizin
Handy Forum

Hier könnte Ihre Werbung stehen

 >> INFO << 

\ Startseite | Forum | Impressum | nach oben | Seite zurück /