tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
429
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    terminator2k3 terminator2k3 ist offline Grünschnabel
    Registriert seit
    Jan 2005
    Ort
    Klagenfurt/Austria
    Beiträge
    3
    Hallo Leute!

    Ich habe ein Script geschrieben, dass mir, entweder über die Eingabe einer URL direkt zu einem RSS1.0, RSS2.0 oder ATOM0.3 Feed oder aber über die Angabe einer OPML Datei alle Feeds ausliest und einer Datenbank speichert.

    Funktioniert super, nur habe ich ein Problem:
    Da es sich bei den Feeds immer wieder um einen anderen Typ handelt (RSS1.0, RSS2.0 oder ATOM0.3) brauchte ich eine Funktion die mir das Datum dieser verschiedenen Typen auslesen kann, damit in der DB jeder Typ und alles im selben Format eingetragen werden kann - funktioniert auch super.

    Bei manchen Feeds jedoch (alle die im File mit <?xml version="1.0" encoding="ISO-8859-1"?> beginnen) kriege ich das Datum nicht raus, und ich weiß nicht warum! - bei allen anderen funktioniert es!

    Wäre super, wenn ihr mir helfen könntet!
    Danke, MFG, terminator2k3
     

  2. #2
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Da der Bezeichner des Formats und dessen Version immer mit angegeben sein sollte, kannst du die Daten doch aufgrund dieser Information verarbeiten.

    Wie verarbeitest du denn die Feeds?
     
    Markus Wulftange

  3. #3
    terminator2k3 terminator2k3 ist offline Grünschnabel
    Registriert seit
    Jan 2005
    Ort
    Klagenfurt/Austria
    Beiträge
    3
    Ich verwende dazu einen Teil des Sourcecodes von MagpieRSS.
    Lese title, URL, description und das Datum aus. Fürs Datum hab ich folgende function:

    PHP-Code:
    function displayUnixTimestamp($item
    {
        
    $rss_2_date $item['pubdate'];
        
    $rss_1_date $item['dc']['date'];
        
    $atom_date $item['issued'];
        if (
    $atom_date != ""$date parse_w3cdtf($atom_date);
        if (
    $rss_1_date != ""$date parse_w3cdtf($rss_1_date);
        if (
    $rss_2_date != ""$date strtotime($rss_2_date);
        if (
    $date == ""$date time();
        return 
    $date;

    --> weil das Datum bei RSS1.0/RSS2.0/ATOM0.3 ander auszulesen und zu konvertieren ist. Nachdem alle Daten der Feeds ausgelesen sind werden sie in die DB geschrieben.

    MfG
     

  4. #4
    terminator2k3 terminator2k3 ist offline Grünschnabel
    Registriert seit
    Jan 2005
    Ort
    Klagenfurt/Austria
    Beiträge
    3
    Hmm, kanns sein, dass in manchen Feeds einfach kein Datum vorhanden ist, das XML-File also unvollständig/fehlerhaft ist?
    Wenn ich nämlich die Variable, in der das ausgelesene Datum drinsteht, ausgebe, erhalte ich folgende Meldung:

    Warning: date(): Windows does not support dates prior to midnight (00:00:00), January 1, 1970 in C:\...

    MfG
     

Ähnliche Themen

  1. Datum mittels monthcalendar anzeigen
    Von Jeiss im Forum .NET Windows Forms
    Antworten: 3
    Letzter Beitrag: 14.02.09, 12:12
  2. Antworten: 1
    Letzter Beitrag: 24.01.08, 16:59
  3. Antworten: 5
    Letzter Beitrag: 16.04.06, 19:16
  4. Antworten: 2
    Letzter Beitrag: 27.04.05, 14:17
  5. Antworten: 4
    Letzter Beitrag: 01.08.04, 13:55