php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.03.2005, 16:44  
Erfahrener Benutzer
 
Registriert seit: 21.07.2003
Beiträge: 340
PHP-Kenntnisse:
Fortgeschritten
Simbo
Standard RSS Feed -> Array

Hallo zusammen...

Mein Plan:
Ich möchte eine Funktion machen, der man eine URL eines RSS-Feeds übergibt, dieser wird dann in ein Array zerlegt und das Array zurückgegeben.
Das Array stell ich mir folgendermaßen vor:

$_feed['url'] = "http://irgendwas.rss"
$_feed['channel']['title'] = "der Titel"
$_feed['channel']['link'] = "http://derlinkdazu.de"
$_feed['channel']['descr'] = "die Beschreibung"
$_feed['items'][0]['title'] = "Item 1"
$_feed['items'][0]['link'] = "Link 1"
$_feed['items'][1]['title'] = "Item 2"
$_feed['items'][1]['link'] = "Link 2"
und so weiter...

mein Problem: ich bin ganz schlecht in regulären Ausdrücken...
ich hab jetzt also das gesamte RSS in einem String namens $feed_content aus dem ich jetzt versuche den text zwischen den einzelnen tags zu extrahieren. allerdings komm ich mit preg_match() nicht weit...

wie kann ich beispielsweise den feed titel extrahieren, der sich innerhalb des title-tags befindet, welcher sich wiederum im channel-tag befindet??

bitte helft mir auf die sprünge...

Simon
__________________
simbo.de
Simbo ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 19.03.2005, 17:12  
Gast
 
Beiträge: n/a
Standard

1. PHP5 installieren
2. das durchlesen: http://www.php.net/manual/de/ref.simplexml.php
3. das angucken: http://test.php-help.info/rss-1/ (Quelltext wird angezeigt)

Mit PHP4 geht es auch, ist aber ein fürchterlicher Aufriß.
 
Alt 19.03.2005, 17:37  
Erfahrener Benutzer
 
Registriert seit: 21.07.2003
Beiträge: 340
PHP-Kenntnisse:
Fortgeschritten
Simbo
Standard

php5 fällt leider flach...

hab jetzt aber mal eine erste version fertig... mit den feeds von heise.de und php.net funktionierts schon mal...

wenns jemand interessiert, hier der code:
Code:
function feed2array($feed)
  {
    $feed_content = implode("", file($feed));
    $_feed = array();
    $_feed['url'] = $feed;
    $_feed['channel'] = array();
    $_feed['items'] = array();
    preg_match_all("/\<channel.*?\>.*?\<title\>(.*?)\<\/title\>.*?\<\/channel\>/si", $feed_content, $_channel_title, PREG_PATTERN_ORDER);
    preg_match_all("/\<channel.*?\>.*?\<link\>(.*?)\<\/link\>.*?\<\/channel\>/si", $feed_content, $_channel_link, PREG_PATTERN_ORDER);
    preg_match_all("/\<channel.*?\>.*?\<description\>(.*?)\<\/description\>.*?\<\/channel\>/si", $feed_content, $_channel_descr, PREG_PATTERN_ORDER);
    $_feed['channel']['title'] = $_channel_title[1][0];
    $_feed['channel']['link'] = $_channel_link[1][0];
    $_feed['channel']['description'] = $_channel_descr[1][0];
    preg_match_all("/\<item.*?\>.*?\<title\>(.*?)\<\/title\>.*?\<\/item\>/si", $feed_content, $_items_titles, PREG_PATTERN_ORDER);
    preg_match_all("/\<item.*?\>.*?\<link\>(.*?)\<\/link\>.*?\<\/item\>/si", $feed_content, $_items_links, PREG_PATTERN_ORDER);
    preg_match_all("/\<item.*?\>.*?\<description\>(.*?)\<\/description\>.*?\<\/item\>/si", $feed_content, $_items_descrs, PREG_PATTERN_ORDER);
    foreach($_items_titles[1] as $key => $title)
      {
        $_feed['items'][$key] = array();
        $_feed['items'][$key]['title'] = $title;
        $_feed['items'][$key]['link'] = $_items_links[1][$key];
        $_feed['items'][$key]['description'] = $_items_descrs[1][$key];
      }
    return $_feed;
  }

$_feed = feed2array("http://www.heise.de/newsticker/heise.rdf");
echo "<pre>";
print_r($_feed);
echo "</pre><hr>";

$_feed = feed2array("http://www.php.net/news.rss");
echo "<pre>";
print_r($_feed);
echo "</pre><hr>";
den output sieht man hier: http://simbo.is-a-geek.net/temp/feed2array.php

vorschläge? verbesserungen? her damit...

Simon
__________________
simbo.de
Simbo ist offline  
Alt 19.03.2005, 18:01  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Simbo
php5 fällt leider flach...

vorschläge? verbesserungen? her damit...
a. PHP5 tut absolut nicht weh. Installationsaufwand ca. 1h. 55', um alle fehlenden Developer Pakete zu installieren, und 5' compilieren.

Falls Du keinen eigenen/Miet-Server hast: es gibt momentan genug Provider, die auch PHP5 anbieten. Achte darauf, daß es sich um 5.0.3 handelt und guck Dir vorher deren phpinfo an.

b. für PHP4 gibt es diverse Klassen, mit denen man sich durch XML bewegen kann. Nicht so einfach, wie bei simpleXML, aber es geht auch.
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Turnierbaum aus array erstellen kingflo PHP-Fortgeschrittene 11 30.07.2008 11:32
Soapfault: Undefined Property Argi PHP-Fortgeschrittene 0 28.07.2008 11:17
Kategoriedaten rekursiv in Array bringen Schiedsrichter PHP Tipps 2008 2 10.12.2007 15:43
ARRAY: alle möglichen Kombinationen Tentacle PHP Tipps 2006 13 12.05.2006 00:18
Übersicht aus mehrdimensionalem Array erzeugen Crypi PHP-Fortgeschrittene 0 30.01.2006 13:44
Array auslesen andrew22 PHP Tipps 2006 3 21.01.2006 23:06
Array Formatierung PHP Tipps 2006 3 17.01.2006 19:12
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
Problem beim vergleichen von 2 Arrays PHP Tipps 2005-2 1 06.10.2005 14:25
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
Sortieren von Arrays mit mehr als 2 Dimensionen (Teil 2) Buhmann PHP-Fortgeschrittene 4 12.07.2005 14:03
Array wie auslesen? PHP Tipps 2005 7 07.03.2005 11:43
[Erledigt] Mehrdimensionales Array in eindimensionales Array umwandeln PHP-Fortgeschrittene 3 03.01.2005 22:31
Abfrage mit id aus anderer Tabelle suter PHP Tipps 2004-2 15 16.12.2004 14:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
rss to array, rss feed in array, php rss feed to array, php5 rss feed to array, feed in array, php rss to array, rss in array, php array rss, feed to array php, feed2array php, rss php array, rss feeds 2 array, rss in array php, php rss feed in array, rss feed in array php, php feed array, heise rss feed mit php 4 auslesen, php feed in array, array aus rss erstellen, php rss feed from array

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:21 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.