ilch Forum » Allgemein » HTML, PHP, SQL,... » rss auslesen und in php wiedergeben

Geschlossen
  1. #1
    User Pic
    Siggi Hall Of Fame
    Registriert seit
    08.02.2007
    Beiträge
    6.558
    Beitragswertungen
    327 Beitragspunkte
    huhu

    ich habe da ein kleines script was mit erlaubt den inhalt aus einer rss auszulesen und in der php datei wiederzugeben.

    Es läuft alles wunderbar jedoch wuerde ich gern das Datum Format ein wenig anders ausgeben als es vorgegeben ist.

    Es wird momentan so ausgegeben: Mon, 29 Aug 2011 19:34:21 +0000
    Ich hätte es gern: 29 Aug 2011 15:34:21 EST

    Leider weiss ich nicht so recht wie und wäre schon wenn da mal einer ein blick drüber werfen koennte.

    hab es auch bei den $entry->pubDate versucht aber leider gescheitert

    <?php
    defined ('main') or die ( 'no direct access' );
    
    $title = $allgAr['title'].' ';
    $hmenu = '';
    $design = new design ( $title , $hmenu );
    $design->header();
    
     $url = 'http://www.uoherald.com/rss.xml';
     $number = 6; //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);
     // print_r($item);
    
    echo '<table width="100%" border="0" cellspacing="1" cellpadding="4"><tr><td><b>&raquo;<u>Ultima Online Neuigkeiten</u></b></td></tr></table>';
    
    foreach ($xml->channel->item as $entry){
      //Use that namespace
      $namespaces = $entry->getNameSpaces(true);
      //Now we don't have the URL hard-coded
      $dc = $entry->children($namespaces['dc']);
    echo '
    <table width="590" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td rowspan="5" width="105" align="center" valign="top"><img src="include/images/news/newsuoherald.gif" alt="" border="0"></td>
      </tr>
      <tr>
        <td width="485" colspan="2"><a href="'. $entry->link .'" title="'. utf8_decode($entry->title) .'" target="_blank"><font size="+1" color="#800000"><b>'. utf8_decode($entry->title) .'</b></font></a></td>
      </tr>
      <tr>
        <td width="242"><b>'. $dc->creator .'</b></td>
        <td width="243" align="right"><b>'. $entry->pubDate .'</b></td>
      </tr>
      <tr>
        <td width="485" colspan="2">'. utf8_decode($entry->description) .'</td>
      </tr>
    </table>
    <br>
    <div align="center"><img src="include/images/news/newsline.jpg" alt="" border="0"></div>
    <br><br>
    ';
     }
    
    echo '<div align="center"><a href="http://www.uoherald.com/news/archive/story" target="_blank"><font color="#800000"><b>View News Archives</b></font></a><br><br><a href="http://www.uoherald.com/rss.xml" target="_blank"><img src="http://www.uoherald.com/misc/feed.png" alt="" border="0"> <font color="#800000"><b>RSS Feed</font></a></div><br>';
    
    $design->footer(0);
    
    ?>
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    she Mitglied
    Registriert seit
    13.11.2010
    Beiträge
    1.115
    Beitragswertungen
    82 Beitragspunkte
    externer Link

    Könntest du mirverwenden. Und schon hast du dein String wieder im Timestamp und daraus kannst du dann wieder ein date machen zwinker
    Google+ shelfinger.eu
    Das Wissen verfolgt mich - doch ich bin schneller!
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Siggi Hall Of Fame
    Registriert seit
    08.02.2007
    Beiträge
    6.558
    Beitragswertungen
    327 Beitragspunkte
    Super lächeln

    nun haette ich noch eine frage und muss auch sagen das habe ich probiert traurig was nur bestimmte anzahl an einträge anzeigt bsp es sind 10 vorhanden aber sollen nur 6 gezeigt werden.

    es geht irgendwie mit $i = 6 und $i++ aber bekomm es ehrlich gesat nicht hin


    Zuletzt modifiziert von Siggi am 30.08.2011 - 12:38:25
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Wizzard26 Mitglied
    Registriert seit
    05.03.2009
    Beiträge
    259
    Beitragswertungen
    33 Beitragspunkte
    Vorweg ich versuch gerade PHP zu lernen, also übernehm ich keinegarantie für richtigkeit ^^
    Wenn ich das richtig verstanden hab bis jetzt
    dann wäre $i <= 6 oder $i < 7
    Sprich erste varinate solang i kleiner oder gleich 6 ist die schleife ausführen , 2te variante schleife ausführen solang wert kleiner als 7
    das i++ zählt immer einen zähler höher.
    Hoffe ich hab das halbwegs richtig ansonsten lass ich mich aber auch gerne von den Codern hier erschlagen
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Siggi Hall Of Fame
    Registriert seit
    08.02.2007
    Beiträge
    6.558
    Beitragswertungen
    327 Beitragspunkte
    da wusste ich auch zwinker das ist fuer mich nix neues jedoch weiss icht nicht wie genau ich es in meiner in meiner foreach schleife einbauen muss. wenn ich es dahinter schreib etc gibt er mir nix aus
    foreach ($xml->channel->item as $entry){
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Aus einer foreach Schleife kannst du mit break; heraus springen.

    Also vorher $i = 0;

    drinnen dann

    if ($i > 6) {
      break; 
    } else {
      $i++;
    }

    Hoffe ich habe es richtig verstanden.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Siggi Hall Of Fame
    Registriert seit
    08.02.2007
    Beiträge
    6.558
    Beitragswertungen
    327 Beitragspunkte
    Nun liest er mir 7 aus moechte aber gern nur 6? auch durch aendern von $number = 5; //Maximale Anzahl werden es nicht weniger.

    und nur if ($i > 5) { dann zeigt er garnix an

    <?php
    defined ('main') or die ( 'no direct access' );
    
    $title = $allgAr['title'].' ';
    $hmenu = '';
    $design = new design ( $title , $hmenu );
    $design->header();
    
     $url = 'http://www.uoherald.com/rss.xml';
     $number = 5; //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);
    
     // print_r($item);
    echo '<left>';
    include('include/boxes/hlogin.php');
    echo '</left>';
    
    echo '<ul id="countrytabs" class="shadetabs">
    <li><a href="" rel="country1" class="selected">News-Übersicht</a></li>
    <li><a href="" rel="country2">UO News-Übersicht</a></li>
    <li><a href="" rel="country3">Foren-Übersicht</a></li>
    <li><a href="" rel="country4">Toplist Top 3</a></li>
    </ul>
    
    <div style="border:1px solid gray; width:95%; margin-bottom: 1em; padding: 10px">
    
    <div id="country1" class="tabcontent">';
    include('include/boxes/lastnews.php');
    echo '</div>
    
    <div id="country2" class="tabcontent">';
    include('include/boxes/uolastnews.php');
    echo '</div>
    
    <div id="country3" class="tabcontent">';
    include('include/boxes/lastforum.php');
    echo '</div>
    
    <div id="country4" class="tabcontent">';
    include('include/boxes/toptoplist.php');
    echo '</div>
    
    </div>
    
    <table width="100%" border="0" cellspacing="1" cellpadding="4"><tr><td><b>&raquo;<u>Ultima Online Neuigkeiten</u></b></td></tr></table>';
    
    $i = 0;
    foreach ($xml->channel->item as $entry){
    if ($i > $number) {
      break;
    } else {
    $dates = strtotime($entry->pubDate);
    $neue_zeit = strtotime("-6 hours",$dates);
    $date = date('d M Y H:i:s T', $neue_zeit);
      //Use that namespace
      $namespaces = $entry->getNameSpaces(true);
      //Now we don't have the URL hard-coded
      $dc = $entry->children($namespaces['dc']);
    
    echo '
    <table width="590" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td rowspan="5" width="105" align="center" valign="top"><img src="include/images/news/newsuoherald.gif" alt="" border="0"></td>
      </tr>
      <tr>
        <td width="485" colspan="2"><a href="'. $entry->link .'" title="'. utf8_decode($entry->title) .'" target="_blank"><font size="+1" color="#800000"><b>'. utf8_decode($entry->title) .'</b></font></a></td>
      </tr>
      <tr>
        <td width="242"><b>'. $dc->creator .'</b></td>
        <td width="243" align="right"><b>'. $date .'</b></td>
      </tr>
      <tr>
        <td width="485" colspan="2">'. utf8_decode($entry->description) .'</td>
      </tr>
    </table>
    <br>
    <div align="center"><img src="include/images/news/newsline.jpg" alt="" border="0"></div>
    <br><br>
    ';
      $i++;
    }
     }
    
    echo '<div align="center"><a href="http://www.uoherald.com/news/archive/story" target="_blank"><font color="#800000"><b>View News Archives</b></font></a><br><br><a href="http://www.uoherald.com/rss.xml" target="_blank"><img src="http://www.uoherald.com/misc/feed.png" alt="" border="0"> <font color="#800000"><b>RSS Feed</font></a></div><br>';
    
    $design->footer(0);
    
    ?>
    
    <script type="text/javascript">
    var countries=new ddtabcontent("countrytabs")
    countries.setpersist(true)
    countries.setselectedClassTarget("link") //"link" or "linkparent"
    countries.init()
    </script>



    Zuletzt modifiziert von Siggi am 30.08.2011 - 17:25:54
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Siggi Hall Of Fame
    Registriert seit
    08.02.2007
    Beiträge
    6.558
    Beitragswertungen
    327 Beitragspunkte
    leider geht es nicht so hatte ich es schon versucht dann wird einen naehmlich garnix mehr angezeigt. Leere Seite

    edit: ah mit if ($i >= $number) { gings zwinker


    Zuletzt modifiziert von Siggi am 30.08.2011 - 19:02:17
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten