foreach - Schleifen und arrays

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #46
    Eigentlich gibt es unterschiedliche Wege. Du teilst das Script in header.php und was-weiß-ich.php und includest die in eine HTML-Seite wo die hingehören oder Du teilst die HTML-Steite in Header und Footer und includest diese ins Script.

    Du kannst daraus auch eine Funktion oder Klasse machen, gehen tut das schon. Nur traue ich Dir das ehrlich gesagt noch nicht ganz zu. Die müsste dann eigentlich unter error_reporting beginnen und vor </div> aufhören, an der könntest Du dann die Feed-Adresse übergeben, nur einiges Zeilen müsste wohl umgeschrieben werden.

    Ich hatte jetzt beinahe alles in nur eine Seite gequetscht, damit es übersichtlicher ist. Du könntest jedoch auch alle Funktionen in eine funktionen.php auslagern und diese includen (eigentlich inkludieren). Damit würde es schon einmal leerer aussehen.

    So, nun habe ich die Seite zur Ausgabe und zum Einbinden abgespeckt und beinahe alles ausgelagert. Ob Funktion oder Klasse, beides nimmt sich ja nicht so sehr viel, nur etwas mehr Arbeit beim Umstellen, deshalb gleich eine Klasse davon gebastelt. Nun sollte das Script sich leichter in bestehende Webseiten einbinden lassen.

    Feedreader mit ausgelagerten Funktionen

    Mal sehen, ob Du damit nun besser klar kommst. Brauchst ja nur HTML ergänzen, wie es Dir vorschwebt.
    Zuletzt geändert von Melewo; 12.06.2013, 14:06.

    Kommentar


    • #47
      Danke

      ...wusste gar nicht, dass Du noch daran sitzt. Ich habe inzwischen selbst gefummelt und habe zumindest beim Abspecken einiges erreicht. Den Focus-feed habe ich fast so, wie ich ihn brauche, also mit tooltip (den ich mit explode wohl noch ein bisschen entschlacken muss) und sonst nur link und title, hätte jetzt versucht, das Ganze noch an meine ul/li-Darstellung anzupassen.

      Dann habe ich es mit der Süddeutschen versucht, wo es auch klappte, wenn ich den feedreader (feedfunc2.php) abgespeckt separat aufrief, aber nicht mit include (siehe screenshot). Da bricht meine Seite in der Darstellung einfach ab. Aber wahrscheinlich habe ich mit include auch was falschgemacht, muss mir das Regelwerk dafür noch mal genauer anschauen.

      PHP-Code:
        <div class="border">

         
      <a href="http://www.focus.de/politik/" target='_blank'> 
      <img src="logos/focus.jpg" alt="FOCUS" style=" margin:3px 0px 0px -45px ; padding:0px;"/></a>


      <ul>
       <?php
      include 'feedfunc.php';


      ?>   
      </ul>
           
          </div>


         <div class="border">

          
      <a href="http://www.sueddeutsche.de/politik" target='_blank'> 
      <img src="logos/suedd.jpg" alt="S&uuml;ddeutsche Zeitung" style="margin:3px 0px 0px -45px ; padding:0px;"/></a>
      <ul>
      <?php

      include 'feedfunc2.php';
      ?>
      </ul>
          </div>
      Eine Klasse eingebunden habe ich auch noch nicht. Werde jetzt mal Dein neues Werk anschauen und damit Versuche unternehmen. Mal sehen, ob ich das irgendwie vernünftig eingebaut bekomme. Also bei function wüsste ich, wie ich die jeweilige feed-url jeweils übergebe...

      Was ich auch nicht weiß, muss ich die ganzen ini-Sachen drin lassen, auch wenn ich das schon im Header meiner Ursprungsseite drinhabe? Wünsch mir Glück und Verstand...

      Gruß
      newbie1955
      Angehängte Dateien

      Kommentar


      • #48
        Zitat von newbie1955 Beitrag anzeigen
        Was ich auch nicht weiß, muss ich die ganzen ini-Sachen drin lassen, auch wenn ich das schon im Header meiner Ursprungsseite drinhabe?
        Das ist doch die "Ursprungsseite" bzw. der vollständige Quelltext einschließlich des Codes für die "Ursprungsseite", da brauchst Du doch nur den HTML-Quelltext noch entsprechend dem Layout Deiner restlichen Seiten zu ergänzen. Anderenfalls würdest Du ja zwei Header, zwei Bodys und zwei Footer in einer Seite haben. Diese Seite kannst Du doch mit HTML gestalten wie Du möchtest, nur die Reihenfolge muss eingehalten werden.

        Klar werden da ein paar Zeilen mehr als bei einem Counter in eine HTML-Seite eingebunden, muss ja auch mehr übergeben werden. Oder man müsste jetzt extra noch eine Seite zum Editieren machen oder das Objekt von der Klasse gleich mit in der Datei von der Klasse erzeugen und dort dann halt editieren. Dadurch würde zwar die HTML-Seite noch leerer, doch der Aufwand lohnt ja nicht bzw. das bekommst Du auch fertig, so viel kann ich Dir wohl zutrauen.
        Zuletzt geändert von Melewo; 12.06.2013, 19:55.

        Kommentar


        • #49
          Wahrscheinlich ...

          drücke ich mich einfach verworren aus. Ich möchte Deinen ursprünglichen feedreader gerne von meiner Seite aus aufrufen, und dann mit meiner Seite ausgeben, weil ich ja insgesamt 20 feeds mit den jeweils zehn wichtigesten Schlagzeilen, Links und tolltips ausgebe (mit meiner css-datei), jeweils in border-Kästen. Das ist schon so gestaltet, da wäre es praktisch, ich könnte nach dem Einblenden der logos dann mit den Ul/li-Hinweisen alle feeds jeweils aufrufen, indem ich Deinen feedreader als function aufrufe, der ich nur die jeweilige Seite mitgeben muss. Das meinte ich.

          Ich hatte aber schon mal, Deinen reader insgesamt als function betitelt aufzurufen, das hat nicht geklappt.
          Schönen Dank und Gruß
          newbie1955

          Kommentar


          • #50
            Ich verstehe aber nicht, wo Dein Problem liegt, mehrere Feeds damit zu laden. Was Du nicht benötigst, dass kannst Du doch ausblenden, dafür sind doch diese Editiermöglichkeiten vorhanden. Und wenn Du da noch das Datum oder so weghaben möchtest, das kannst Du doch mit bei den if-Statements einfach auf false setzen, nur biete ich das nicht von vornherein mit an.

            PHP-Code:
            $pub false;

            if (
            $nachricht->pubDate and $pub != false) { 
            Und das "and $pub != false" brauchst Du doch nur bei den mit hineinschieben, die Du nicht haben möchtest und die nicht über die Einstellungen beim Editieren bereits auf false gesetzt werden können.
            Wobei, zu viele gleichzeitige Request werden auch nicht gut sein. Doch diese drei hat er unter Localhost noch in 1.17s (onload: 1.24s) geladen.

            PHP-Code:
            <?php
            ini_set
            ("user_agent""Mozilla/5.0 (compatible; Feedreader/PHP +".$_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"].")");
            header("Content-Type: text/html; charset=UTF-8");

            /*-- Die folgenden Werte sollten bei Bedarf editiert werden, $seite = "" muss editiert werden. -------------------*/

            error_reporting(E_ALL);
            define("SCHLIESSE"">");
            define("MAXWEITE"250);
            define("MAXHOEHE"250);
            $formu  false;                  // Formular auf false setzen
            $seite  "testfeed.rss";
            $feedkl "feedklasse.php";
            $feedfo "feedformular.php";
            $feedst "feedstyle.css";

            ?>
            <!DOCTYPE html>
            <html>

            <head>
            <title>Feedreader</title>
            <?php echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"".$feedst."\"".SCHLIESSE."\n"?>
            </head>

            <body>
            <h1>Feedreader für RSS und Atom</h1>
            <?php
            if ($formu == true) {

                if (
            file_exists($feedfo)) {include_once $feedfo;
                } else {echo 
            "Formular konnte nicht geladen werden!\n";
                }
            }
            if (
            file_exists($feedkl)) {

                include_once 
            $feedkl;

                
            $feedladen = new FeedKlasse();             // für jeden feed ein Objekt erzeugen
                                                           // Die URI des zu ladenden Feeds direkt vorgeben
                
            $feedladen->seite "http://www.tagesschau.de/xml/atom/";  
                
            $feedladen->maxim 12;
                
            $feedladen->descr false;                 // Alles was nicht ausgegeben werden soll auf false setzen
                
            $feedladen->conte false;
                
            $feedladen->summa false;
                
            $feedladen->liefereFeedContent();
                
                
            $feedladen = new FeedKlasse();
                
            $feedladen->seite "http://www.heim-und-haustiere.de/themen/magazin.xml";
                
            $feedladen->maxim 12;
                
            $feedladen->descr false;
                
            $feedladen->conte false;
                
            $feedladen->summa false;
                
            $feedladen->liefereFeedContent();

                
            $feedladen = new FeedKlasse();
                
            $feedladen->seite "http://www.spiegel.de/wirtschaft/index.rss";
                
            $feedladen->maxim 12;
                
            $feedladen->descr false;
                
            $feedladen->conte false;
                
            $feedladen->summa false;
                
            $feedladen->liefereFeedContent();    
                

            } else {echo 
            $feedkl." konnte nicht geladen werden!\n";
            }
            ?>
            </div>
            </body>
            </html>

            Kommentar


            • #51
              Re

              Versteh mich nicht falsch. Ich finde den feedreader sehr gut. Für mich wäre es nur gut, ihn als function einbinden zu können, weil ich ein fertiges laufendes html und css-gerüst habe, aus dem heraus ich gut den reader als function aufrufen könnte wenn möglich. Jeweils an den stellen wo die liste mit den feeds hinsoll. Zumal ich zwischendurch auch mal xpath benutze, wo der feed nix taugt. Aber ich kann natürlich auch mein html und css in dein script einbauen, wenn das mit der function nicht geht. Mal sehen, wie ich das hinkriege.

              Gruß newbie1955

              Kommentar


              • #52
                Ja gut, doch so wie Du das versucht hattest, da bin ich auch etwas ins Schleudern gekommen, denn einfach nur eine neue Funktion über bereits vorhandene Funktionen stülpen und diese neue Funktion dann mehrfach aufrufen, so einfach geht das nicht. Ich dachte ja auch anfänglich so ähnlich, habe aber schnell meinen Irrweg bemerkt. Das Prinzip hätte dann in etwa wie folgt ausgesehen und die Fehlermeldung ab den zweiten Aufruf ergeben:

                PHP-Code:
                <?php

                function foo($var) {

                    function 
                bar($string) {
                    
                        return 
                $string." plus Testausgabe\n";
                    } 
                echo  
                bar($var);
                }

                foo("Test");   // Test plus Testausgabe 
                foo("Nest");   // Fatal error: Cannot redeclare bar()

                ?>
                Wie löst man das? Weiß ich auch gerade nicht.
                Außer mit der nächsten Variante, die ja funktioniert:

                PHP-Code:
                <?php

                function bar($string) {

                    return 
                $string." plus Testausgabe\n";
                }
                function 
                foo($var) {

                    echo  
                bar($var);
                }

                foo("Test");   // Test plus Testausgabe 
                foo("Nest");   // Nest plus Testausgabe 

                ?>
                Die einzelnen Objekte hättest Du auf der Seite auch dort platzieren können, wohin Du die haben möchtest, die brauchen ja nicht untereinander aufgereiht zu werden, doch nun habe ich das halt abgespeckt, nicht mit einer Klasse, doch dafür mit einer Hauptfunktion versehen.

                Die "Ursprungsseite":

                PHP-Code:
                <?php
                /* -----------------------------------------------------------------------------------------------------
                 Diese Zeilen nur einmalig auf der Seite über dem Head, der Wert E_ALL kann nach Erprobung auf 0 gesetzt
                 werden, vor ini_set darf kein HTML ausgegeben werden.
                 -------------------------------------------------------------------------------------------------------
                */
                ini_set("user_agent""Mozilla/5.0 (compatible; Feedreader/PHP +".$_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"].")");
                header("Content-Type: text/html; charset=UTF-8");
                error_reporting(E_ALL);
                $feedfu "feedfunktionen.php";           // Seite mit den Funktionen
                ?>
                <!DOCTYPE html>
                <html>

                <head>
                <title>Feedreader</title>
                <link rel="stylesheet" type="text/css" href="feedstyle.css">
                </head>

                <body>
                <h1>Feedreader für RSS und Atom</h1>
                <?php

                // Nur einmalig auf der Seite ausgeben

                if (file_exists($feedfu)) {include_once $feedfu;
                } else {echo 
                "Feedfunktionen konnte nicht geladen werden!\n";
                }

                // Wohin Du die einzelnen Ausgaben auf der Seite haben möchtest.

                echo "<br>Tagesschau<br>\n";
                verarbeiteFeed("http://www.tagesschau.de/xml/atom/");

                echo 
                "<br>Focus<br>\n";
                verarbeiteFeed("http://rss2.focus.de/c/32191/f/443313/index.rss");

                echo 
                "<br>Spiegel<br>\n";
                verarbeiteFeed("http://www.spiegel.de/wirtschaft/index.rss");

                ?>
                </div>
                </body>
                </html>
                Die feedfunktionen.php:

                PHP-Code:
                <?php

                // Die Hauptfunktion

                function verarbeiteFeed($urlfeed) {

                    
                $linkt "» Weiterlesen «";
                    
                $maxim 12;
                    
                $link  false;
                    
                $lesen false;
                    
                $start 0;

                    if ((@
                $data file_get_contents($urlfeed)) != false) {

                        
                $pxml simplexml_load_string(wandleTags($data), "SimpleXMLElement"LIBXML_NOCDATA);

                        if (
                $pxml->channel->item$lesen $pxml->channel->item;
                        if (
                $pxml->entry)         $lesen $pxml->entry;

                        if (
                $lesen != false) {

                            foreach (
                $lesen as $nachricht) {

                                
                /*-- Auswählen, ob Link für RSS $nachricht->link oder Atom $nachricht->link->attributes() --------*/

                                
                if ($nachricht->link) {

                                    if ((string)
                $nachricht->link) {
                                        
                $link $nachricht->link;
                                    }
                                    elseif (
                $nachricht->link->attributes()) {
                                        
                $attr $nachricht->link->attributes();
                                        
                $link $attr["href"];
                                    }
                                }

                                
                /*-- Titel mit Link ------------------------------------------------------------------------------*/

                                
                if ($nachricht->title) {
                                    echo 
                "<h3><a href=\"".htmlspecialchars(filtereLinks($link), ENT_QUOTES)."\" target=\"_blank\">".
                                    
                htmlspecialchars(filtereHTML($nachricht->title), ENT_QUOTES)."</a></h3>\n";
                                }

                                if (
                $link != false) {
                                    echo 
                "<a href=\"".htmlspecialchars(filtereLinks($link), ENT_QUOTES)."\" target=\"_blank\">".
                                         
                $linkt."</a><br>\n";
                                }

                                
                /*-- Trennlinie zwischen den einzelnen Mitteilungen ----------------------------------------------*/

                                
                echo "<hr class=\"linie\">\n";
                                
                $start++;
                                if (
                $start == $maxim) {break;
                                }
                            }
                        }
                    } else { echo 
                "<br".SCHLIESSE."Feed konnte nicht geladen werden!\n";
                    }
                }

                // Die Nebenfunktionen

                function wandleTags($daten) {

                    
                $daten str_replace("content:encoded""content"$daten);
                    
                $daten preg_replace_callback("/(&[#a-z0-9]+;)/",

                        function(
                $enti) {

                            return 
                htmlspecialchars(mb_convert_encoding($enti[1], "UTF-8""HTML-ENTITIES"));
                        }, 
                $daten);

                    if (
                strpos($daten"><item>") !== false) {

                        
                $eing  = array(

                            
                "><item>"        => ">\r\n<item>",
                            
                "><title>"       => ">\r\n<title>",
                            
                "><link>"        => ">\r\n<link>",
                            
                "><description>" => ">\r\n<description>",
                            
                "><content>"     => ">\r\n<content>",
                            
                "><summary>>"    => ">\r\n<summary>>",
                            
                "><enclosure>"   => ">\r\n<enclosure>",
                            
                "><pubDate>"     => ">\r\n<pubDate>",
                            
                "><updated>"     => ">\r\n<updated>",
                            
                "><published>"   => ">\r\n<published",
                            
                "><author>"      => ">\r\n<author>",
                            
                "><creator>"     => ">\r\n<creator>"
                        
                );
                        
                $daten strtr($daten$eing);
                    }
                    return 
                $daten;
                }
                function 
                filtereHTML($daten) {

                    
                $daten preg_replace("/<.+?>/is"""$daten);
                    return 
                $daten;
                }
                function 
                filtereLinks($daten) {

                    
                $daten preg_replace("/[^a-z0-9_\/=.:;&?-]/is"""$daten);
                    return 
                $daten;
                }

                ?>
                Nun hast Du genug Stoff und Beispiele, um Dich damit zu beschäftigen, Dich damit auseinander zu setzen und Schritt für Schritt daraus ein wenig zu lernen.


                Edit: Jetzt habe ich doch noch eine andere Lösung gefunden, so hätte es auch ohne Fehlermeldungen funktioniert. Nun ist es egal, die andere Lösung ist wohl einfacher, da ja nicht immer function_exists abgefragt werden muss.

                PHP-Code:
                <?php

                function foo($var) {

                    if(!
                function_exists("bar")) {

                        function 
                bar($string) {

                            return 
                $string." plus Testausgabe\n";
                        }
                    }
                echo  
                bar($var);
                }

                foo("Test");   // Test plus Testausgabe
                foo("Nest");   // Nest plus Testausgabe
                foo("Plus");   // Plus plus Testausgabe
                ?>
                Und bevor ich es vergesse, falls Du mal die dickere Variante mit der Klasse und den Objekten verwenden solltest, das war gestern nur ein schnelles Beispiel mit den drei Objekten. Besserer und übersichtlicher wäre es dann wohl, für jedes Objekt eine andere Variable zu benutzen, wie

                PHP-Code:
                $feed1 = new FeedKlasse();
                $feed1->seite "...";

                $feed2 = new FeedKlasse();
                $feed2->seite "...";

                $feed3 = new FeedKlasse();
                $feed3->seite "..."
                um kein Durcheinander zu erzeugen.
                Zuletzt geändert von Melewo; 13.06.2013, 10:07.

                Kommentar


                • #53
                  Danke danke danke

                  .. Du hast mir sehr geholfen. Bin schon dabei, alles anzupassen in Sachen summaray/description und tooltip-Ausgabe. Aber es läuft bisher sehr gut.
                  Die Seiten, die einen schrottigen feed anbieten, werde ich mit xpath verwurschten, da muss ich dann nur noch eine Möglichkeit finden, auch die description (die ja nicht description heißt) auf der Seite mit xpath zu finden.

                  Eine Frage: Hast Du eine Ahnung, warum der feed der Deutschen Welle aus der Reihe tanzt? Ist rdf nun wieder ein ganz anderes Format?

                  Deutsche Welle: DW-WORLD.DE Themen des Tages

                  Gruß newbie1955

                  Kommentar


                  • #54
                    Ist nicht neu, den Begriff kenne ich schon länger, nur kommt man mit den Kürzeln zuweilen durcheinander. So wie ich das in dem Beispiel sehe, RDF enthält keinen Content, sondern nur Titel, Description und Link, wobei der Link dann auf die Seite verweist, wo der Content zu finden ist. Also genau so, wie ich mir einen kurzen und knappen Feed vorstellen würde. Doch diese Erklärung war gewiss Milchmädchenhaft.

                    Hier scheint es besser erklärt zu sein:

                    http://www.iwi-iuk.org/seminarNotes/2/rdf-reader-v2.pdf

                    RDF beschränkt sich nicht auf die Beschreibung von Objekten, die es irgendwo im Web gibt. RDF beschränkt lediglich den Zeichenvorrat für Objektnamen auf URI und unterwirft den Zeichenvorrat den in RFC3986 gemachten syntaktischen Bedingungen.
                    Es liest sich aber nicht alles so abschreckend. Die Syntax ist auch beschrieben, nun weiß ich doch gleich, wo die WordPress-Feeds ihr dc vor creator herhaben. Es wird somit überall mehr oder weniger gemischt. Aber wenn Du Dir denkst, ich lese mir jetzt die 80 Seiten durch, das kannst Du ja machen und mir dann davon eine kurze Zusammenfassung geben.

                    Kommentar


                    • #55
                      Nee,

                      habe das vorher schon mal auf englisch gefunden, aber auch nicht besser verstanden. AUf Seite 54 ist zwar der für einen Parser relevante Teil des rdfs erwähnt, hilft aber beim Parsen auch nicht weiter. Hatte es intuitiv schon mit

                      PHP-Code:
                              if ($pxml->channel->rdf)         $lesen $pxml->channel->rdf
                      aber ohne Ergebnis, dann muss ich die Seite wohl direkt mit xpath einlesen oder für die Deutsche Welle wie bisher den Magpieparser nehmen.

                      Gruß
                      newbie1955

                      Kommentar


                      • #56
                        Zitat von newbie1955 Beitrag anzeigen
                        PHP-Code:
                                if ($pxml->channel->rdf)         $lesen $pxml->channel->rdf
                        Sag einmal, habe ich Dir denn überhaupt noch nichts beigebracht?
                        Channel schließt doch vor item, da kannst Du doch nicht über channel auf item zugreifen wollen. So schwer ist das doch wohl nicht zu erkennen, wie die Elemente verschachtelt sind, wenn Du mal einen Blick in den Quelltext werfen würdest. Habe es nicht probiert, doch da solltest Du doch direkt auf item zugreifen können.

                        Sehe gerade, bei selfhtml wird es auf den Punkt gebracht:

                        RDF: Resource Description Framework
                        RDF ist eine Sprache zur Beschreibung von Metadaten für Dokumente.
                        SELFHTML: XML / Einführung in XML

                        Doch der Rest ist in der PDF besser beschrieben.

                        Kommentar


                        • #57
                          na,

                          nun ma nich gleich schimpfen hier...
                          doch, den Quelltext habe ich mir angeschaut, deshalb bin ich ja darauf gekommen.

                          habe aber nicht verstanden, warum ich mit Deinem feedreader nicht an title und link und description komme und habe einfach mal was versucht.

                          Entschuldige, sehe gerade, dass die aber auch noch einen Atom-feed anbieten.
                          Zuletzt geändert von newbie1955; 13.06.2013, 20:38.

                          Kommentar


                          • #58
                            Zitat von newbie1955 Beitrag anzeigen
                            und habe einfach mal was versucht.
                            Ja aber warum versuchst Du es dann nicht gleich in der Reihenfolge der Elemente?
                            Brauchst doch nur die zwei Zeilen in der Hauptfunktion um eine dritte Zeile ergänzen:

                            PHP-Code:
                                    if ($pxml->channel->item$lesen $pxml->channel->item;
                                    if (
                            $pxml->entry)         $lesen $pxml->entry;
                                    if (
                            $pxml->item)          $lesen $pxml->item
                            Habe jetzt nicht alles gelesen, nur was mich betreffend der Elemente interessierte, doch diesen Satz (unten auf Seite 40 von der PDF) den fand ich bisher am schönsten. Der bringt doch viel zum Ausdruck:

                            Das bedeutet: Jede Klasse ist Element der Klasse aller RDF Klassen! Insbesondere ist die Klasse aller Klassen eine Klasse.
                            Also, RSS in der Versionen 0.9 und in der Versionen 1.0 beruhten noch auf RDF, wobei es sich bei diesen Feed wohl um RSS 1.0 handelt. Doch der Nachfolger RSS 2.0 ist wesentlich weiter verbreitet.
                            Zuletzt geändert von Melewo; 14.06.2013, 01:10.

                            Kommentar


                            • #59
                              Tja,

                              ich dachte, ich müsste bei der Abfrage auch irgendwie noch signalisieren, dass es sich um ein rdf-Format handelt. Aber so funktioniert es jetzt. Merke nur, dass die Ladezeit der Seite sich beinahe verdoppelt, weil ich jetzt die description/summary hole und als tooltip ausgebe. Naja, vielleicht biete ich zwei Varianten an, mal sehen. und dann muss ich noch sehen wie ich die Medien mit tooltip ausstatte, die keinen guten feed haben und die ich mit xpath abfrage, sonst ist alles Bingo. Der Satz mit den Klassen ist "Klasse" - wenn das keine Poesie ist.

                              Studiere jetzt das Buch von Claudia Unkelbach, ich finde es gut, auch wenn es von Fehlern wimmelt.

                              Gruß
                              newbie1955

                              Kommentar


                              • #60
                                Doch noch ne Frage

                                Ich habe ja noch die eher blöden Medien, die wie gesagt keine oder schlechte feeds rausgeben. Da habe ich beim NDR folgendes gemacht:

                                PHP-Code:
                                <?php
                                $data 
                                file_get_contents('http://www.ndr.de/info/nachrichten287.html');  
                                $doc = new DOMDocument(); 
                                $doc->loadHTML($data); 
                                $result $doc->getElementsByTagName("h2"); 

                                $zaehler 1;

                                foreach (
                                $result as $node

                                if ((
                                $zaehler <= 10)&& ($node->nodeValue !== '') && ($node->nodeValue !== NULL)){

                                         echo 
                                '<li><a href="http://www.ndr.de/info/nachrichten287.html" target="_blank" >' 
                                                   
                                $node->nodeValue '</a></li>';
                                $zaehler++;

                                }
                                Jetzt habe ich versucht, über
                                PHP-Code:
                                 $doc->getElementsByTagName("p"
                                auch noch an den Meldungstext zu kommen, der immer hinter <p> steckt, das funktionierte so aber nicht. Rätst Du mir dazu, es lieber mit xpath zu machen? Zumal ich ohnehin nicht weiß wie man 2 Tags gleichzeitig abruft und in einer Schleife ausgibt?

                                Gruß
                                newbie1955
                                P.S. zur Rechtsfrage übrigens: ich habe mit dem NDR telefoniert, die sagen, für einen nichtregionalen feed hätten sie keine Zeit, den sollte ich mir selbst basteln.

                                Kommentar

                                Lädt...
                                X