[PHP] RSS auslesen .. ?

Dieses Thema im Forum "Webentwicklung" wurde erstellt von PsP.Hc11, 8. November 2009 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 8. November 2009
    RSS auslesen .. ?

    Hey RRler


    Habe folgendes Problem ich möchte aus einem RSS-Feed die Letzten 10 Einträge auslesen.
    Und zwar nur das Veröffentlichungsdatum (ohne Uhrzeit) und den Titel des Beitrages (der Titel soll zum originalbeitrag im Blog verlinken)

    Aussehen solll das dann wie hier ist dies i-wie möglich?

    Wenn ja bitte helfen..

    LG
     
  2. 8. November 2009
    AW: RSS auslesen .. ?

    Kannste mit Regular-Expressions oder mit explode lösen...

    Die RSS-Feed Datei kannste zB mit file() öffnen und in ne Variable werfen..
    PHP: preg_match_all - Manual
    PHP: explode - Manual
    PHP: file - Manual
     
  3. 8. November 2009
    AW: RSS auslesen .. ?

    könntest mir evtl. pls nen beispiel "machen" ? bitte..
     
  4. 8. November 2009
    AW: RSS auslesen .. ?

    Versuch mal selber was aus den geposteten Links zu baseln..
    Wenns nicht klappt helfen wir mit Tips weiter.
     
  5. 8. November 2009
    AW: RSS auslesen .. ?

    Ja zur Zeit lese ich ja den Titel so aus:
    PHP:
    <? php
     error_reporting
    ( E_ALL );

    $url  'http://feeds2.feedburner.com/*****?format=xml' ;
    $number  10 //Maximale Anzahl

    $ch  curl_init ();
    curl_setopt ( $ch CURLOPT_URL $url );
    curl_setopt  ( $ch CURLOPT_RETURNTRANSFER 1 );
    $content  curl_exec  ( $ch );
    curl_close  ( $ch );

    $xml  = new  SimpleXMLElement ( $content );
    $item  $xml -> channel -> item ;
    // print_r($item);

    for ( $i  0 $i  $number $i ++ ) { 
         echo 
    'Datum: ' $item [ $i ]-> pubDate '<br>' ;
         echo 
    'Titel: ' utf8_decode ( $item [ $i ]-> title ),  '<br>'
         echo 
    'Link: ' utf8_decode ( $item [ $i ]-> link ),  '<br>'
         echo 
    'Text: ' utf8_decode ( $item [ $i ]-> description ),  '<br>'
         echo 
    '<br>'

    ?> 
    Das Script gibt zwar jetzt so alles gewünschte aus ABER das sieht dann so aus:
    So.. Weg muss bei Datum Die Uhrzeit und das +0000.. Ausserdem sollte das Datum so aussehen: 07.11.2009
    2. Im Titel sollte das '?' ein '-' sein ..
    3. Der Link ist komplett falsch.. dieser sollte auf http://blog.meinedomain.de/typekit.../ verweisen

    Den Text entferne ich sowieso, da dieser nicht angezeigt werden soll.. also passt das soweit.. jetz müsste nur das datum angepasst werden (wie?!) und der titel sollte zum originalbeitrag verlinken (wie?!) dadurch wird dann der extra dranstehende link überflüssig


    ...sry bin absoluter noob in sowas
     
  6. 8. November 2009
    AW: RSS auslesen .. ?

    Das ist doch alles machbar. Schau mal mit explode kannst du bestimmte teile extrahieren.

    Da du die Uhrzeit weg haben willst, kannst du auch mit dem Leerzeichen arbeiten

    Beispiel:
    PHP:
    $datum = explode ( ' ' , $item [ $i ]-> pubDate );


    list(
    $wtag $tag $monat , $jahr ) =  $datum ;
    Da das Datum zum Teil im Textformat vorliegt fällt mir gerade keine Methode um das in einen Timestamp umzuwandeln. Also würde ich es lösen mit switch

    PHP:
    switch ( $monat ) {  //z.b. der Monat
    case  'Jan' $month = 1 ;
    case 
    'Feb' $month = 2 ;
    case 
    'Mar' $month = 3 ;
    ...
    ...
    Danach kannst du dir dann dein Datum zusammen "schustern" mit der von explode zerlegten Variable und deiner neu erstellen Variable.

    Also beispiel:
    PHP:
    $datum = explode ( ' ' , $item [ $i ]-> pubDate );
    list(
    $wtag $tag $monat , $jahr ) =  $datum ;

    switch (
    $monat ) {
    case 
    'Jan' $month = 1 ;
    case 
    'Feb' $month = 2 ;
    case 
    'Mar' $month = 3 ;
    //weiterfuehren
    Anstatt:
    PHP:
          echo  'Datum: ' $item [ $i ]-> pubDate '<br>' ;
    Dann:
    PHP:
    echo  "Datum:  $wtag   $tag   $month   $jahr  <br>"
    ----------------------
    Das ? im Titel kannst du einfach mit einem - über str_replace ersetzen:

    PHP:
    $title  str_replace ( "?" "-" $item [ $i ]-> title );
    echo 
    $title ;
    -----

    Joa und wegen dem Link, lass dir einfach nicht den Link ausgeben, und mach selber was.

    define("BLOGLINK", "http://blog.meinedomain.de/typekit");

    und dann ansatt:

    PHP:
         echo  'Link: ' utf8_decode ( $item [ $i ]-> link ),  '<br>'
    PHP:
         echo  BLOGLINK ;
    ---



    Ob die Syntaxe jetzt alle richtig sind keine Garantie und ob man das schöner lösen kann ist wohl auch klar..Ich wollte dir nur mal eine einfache vorgehensweise beschreiben.
     
  7. 8. November 2009
    AW: RSS auslesen .. ?

    danke! ABER du musst ja bedenken, die blogeinträge aktualisieren sich ja ..

    also geht das mit dem link schon mal nicht
    das mit dem '?' im Titel funktioniert dann wohl auch nicht

    hat keiner nen fertigen code?! BITTEEEE!!!
     
  8. 8. November 2009
    Zuletzt von einem Moderator bearbeitet: 15. April 2017
    AW: RSS auslesen .. ?

    Fertigecodes gibt es hier nicht. Dafür musst du dann hier hin.


    Wieso das mit dem ? durch ein - nicht gehen soll verstehe ich nicht. Das mit dem Link ist logisch. Aber auch machbar.
     
  9. 9. November 2009
    AW: RSS auslesen .. ?

    hat sich nun einiges getan

    habe einen (fast) fertigen code..
    PHP:
    <? php
    define
    ( 'MAGPIE_CACHE_DIR' 'cache' );
    define ( 'MAGPIE_CACHE_AGE' '450' );
    require_once(
    'rss_fetch.inc' );
    $url  'http://feeds2.feedburner.com/*****?format=xml' ;

    if ( 
    $url  ) {
    $num_items  10 ;
    $rss  fetch_rss $url  );
    $items  array_slice ( $rss -> items 0 , $num_items );
    echo 
    $rss -> channel [ 'title' ];}

    echo 
    "<ul id='feed'>" ;
    foreach (
    $items  as  $item ) {
    $href  $item [ 'link' ];
    $title  $item [ 'title' ];
    echo 
    "<li><a href= $href  target='_blank'> $title </a></li>" ;}
    echo 
    "</ul>" ;
    ?> 
    funktioniert soweit super! leider weiß ich nicht, wie man das datum ausliest..
    UND sonderzeichen werden immernoch in '?' umgewandelt..

    z. B. aus "Es wurde 'n neuer Code entdeckt - teste ihn gleich!"
    wird "Es wurde ?n neuer Code entdeckt ? teste ihn gleich!"

    Jemand tipps wie man das Datum ausliest und das Problem mit den sonderzeichen löst?

    bitte um hilfe!!



    lg
     
  10. 9. November 2009
    AW: RSS auslesen .. ?

    Mal ne frage vorweg..Hast du ne ahnung was in dem Quelltext passiert oder einfach Copy&past?


    Das die Sonderzeichen falsch angezeigt werden liegt am Charset. Versuch mal ISO-8859-1 oder UTF8.

    Und das datum..Dafür sollte man wissen wie das Feld bei dem Feed aussieht um es ansprechen zu können.
     
  11. 9. November 2009
    Zuletzt von einem Moderator bearbeitet: 15. April 2017
    AW: RSS auslesen .. ?

    JA, ich hab ne ahnung was passiert!

    Danke für den Tipp! Werd' ich gleich versuchen...

    Du hast dir den quelltext aber schon angeguckt? Dort ist ein Google Feedburner Link. Einen Feedburner-Link gibt's z. B. hier.

    //EDIT:
    Detailierter geht's hier weiter! *klick mich*
     
  12. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.