pt004: PHP-AUsgabe in Listenform

Hallo, ich habe mit PHP einige Zeilen aus einer Website ausgelesen und möchte sie jetzt in einer ul-Listenform ausgeben. Bisher gelingt es mir nur, dass die einzelnen Zeilen untereinander am linken Rand der Ausgabeseite stehen. Ich möchte aber, dass sie wie die anderen Ausgaben auf dieser Seite mit einem schwarzen Punkt und eingerückt dargestellt werden. Wie schaffe ich die Verbindung zwischen PHP-Ergebnis und Listen-Darstellung: Hier der Code:

PHP-Code:  
<?php  
$data = file_get_contents('http://www.website.de');  
$doc = new DOMDocument();  
$doc->loadHTML($data);  
$result = $doc->getElementsByTagName("h2");  
  
foreach ($result as $node) {  
  
        echo $node->nodeValue, "<br>" ; }  
?>

Danke für Hilfe

pt004

  1. Tach!

    Wie schaffe ich die Verbindung zwischen PHP-Ergebnis und Listen-Darstellung: Hier der Code:

    Du weißt, wie man in HTML Listen erstellt? Wie man mit PHP Text ausgibst, weißt du sicher auch schon. Was ist dein konkretes Problem?

    dedlfix.

    1. Tach!

      Wie schaffe ich die Verbindung zwischen PHP-Ergebnis und Listen-Darstellung: Hier der Code:

      Du weißt, wie man in HTML Listen erstellt? Wie man mit PHP Text ausgibst, weißt du sicher auch schon. Was ist dein konkretes Problem?

      dedlfix.

      Hallo, ich kenne mich mit html ein bischen mehr, mit php erst sehr wenig aus. Ich weiß nicht, an welcher Stelle des PHP-Codes ich die HTML-Codierung eingeben kann/muss. Also, ich habe herausgefunden, dass das <br> - in den PHP-Code eingefügt - wunschgemäß eine "HTML"-Zeilenschaltung verursacht. Aber wie ich es schaffe, dass jede der mit PHP ausgelesenen Zeilen in eine ul/li Liste mit Einrückungen ausgegeben wird, weiß ich nicht. Ich weiß gar nicht, wie ich die ausgegebene Zeile im HTML-Code "benenne" ($node?). Wie gesagt, ich bin Anfänger, vielleicht hast Du ja einen Hinweis.

      Gruß
      glupto

      1. Moin,

        Hallo, ich kenne mich mit html ein bischen mehr, mit php erst sehr wenig aus. Ich weiß nicht, an welcher Stelle des PHP-Codes ich die HTML-Codierung eingeben kann/muss.

        Das ist doch simples HTML und der PHP-Code sieht auch ganz gut aus. Wenn du ein <br> in deinen Code einfügen kannst, geht das auch ganz einfach mit <li>.

        echo "<ul>";  
        foreach ($result as $node) {  
                echo "<li>" . $node->nodeValue . "</li>" ;  
        }  
        echo "</ul>";  
        
        

        Grüße Marco

        1. Tach!

          echo "<li>" . $node->nodeValue . "</li>" ;

          Kontextwechsel nicht missachten! Da fehlt noch ein htmlspecialchars() um das $node->nodeValue.

          dedlfix.

          1. Dake für den Hinweis. Vielleicht liegt es ja daran, dass ich das gewünschte Ergebnis jetzt zwar in Listenform bekomme, aber mit Sonderzeichen statt Umlauten. An welcher Stelle muss das htmlspecialchards() eingefügt werden? Damit habe ich bisher keine Erfahrung.

            Gruß
            pt004

            Tach!

            echo "<li>" . $node->nodeValue . "</li>" ;

            Kontextwechsel nicht missachten! Da fehlt noch ein htmlspecialchars() um das $node->nodeValue.

            dedlfix.

            1. Tach!

              Dake für den Hinweis. Vielleicht liegt es ja daran, dass ich das gewünschte Ergebnis jetzt zwar in Listenform bekomme, aber mit Sonderzeichen statt Umlauten.

              Dann hast du ein Problem mit unterschiedlichen Zeichenkodierungen. Der andere Inhalt verwendet eine andere als dein Inhalt. Das solltest du angleichen oder du musst umkodieren. Die Zeichenkodierung hat aber primär nichts mit dem Kontextwechsel zu tun. Letzterer ist gegen Sicherheitslücken zu beachten und dass einige kontextspezifisch spezielle Zeichen am Ziel korrekt interpretiert und dargestellt werden. Im Falle HTMLs sind das <>&".

              An welcher Stelle muss das htmlspecialchards() eingefügt werden? Damit habe ich bisher keine Erfahrung.

              Wenn du das Prinzip verstanden hast, weißt du auch, wo du es einsetzen musst.

              echo "<li>" . $node->nodeValue . "</li>" ;
              Kontextwechsel nicht missachten! Da fehlt noch ein htmlspecialchars() um das $node->nodeValue.

              Noch genauer als "um das ..." kann ich es nicht erklären. Zudem gibt es nicht nur den Kontextwechsel-Artikel sondern auch unzählige Einsatzbeispiele im Netz, nicht zuletzt auf der PHP-Handbuchseite zu dieser Funktion.

              dedlfix.

              1. Also mal im Detail: Ich lese mit Magpie rssfeeds mehrerer webseiten ein (alles mit Genehmigung), die sind mit utf-8 codiert. Wenn sie bei mir ausgegeben werden - und ich ebenfalls utf-8 angebe, kommen trotzdem "zerschossene" Umlaute.

                Hat jemand eine Idee, woran es sonst liegen kann? Wird für einen feed
                manchmal eine andere Zeichenkodierung verwendet als für die HTML-Seite überhaupt?

                Wenn ich für den PHP-Bereich meiner Seite noch mal extra einen bestimmten Code (header('Content-Type: text/html; charset=utf-8) festlege, hat das keine Auswirkung.

                Rätsel über Rätsel. Gibt es keinen hunderptorzentigen Weg, den Zeichensatz einfach nach dem "echo" festzulegen?

                Außerdem habe ich noch auf meiner Seite das Problem, dass Anführungsstriche unten/oben nie richtig erscheinen, sondern immer als Fragezeichen.

                Gruß

                Tach!

                Dake für den Hinweis. Vielleicht liegt es ja daran, dass ich das gewünschte Ergebnis jetzt zwar in Listenform bekomme, aber mit Sonderzeichen statt Umlauten.

                Dann hast du ein Problem mit unterschiedlichen Zeichenkodierungen. Der andere Inhalt verwendet eine andere als dein Inhalt. Das solltest du angleichen oder du musst umkodieren. Die Zeichenkodierung hat aber primär nichts mit dem Kontextwechsel zu tun. Letzterer ist gegen Sicherheitslücken zu beachten und dass einige kontextspezifisch spezielle Zeichen am Ziel korrekt interpretiert und dargestellt werden. Im Falle HTMLs sind das <>&".

                An welcher Stelle muss das htmlspecialchards() eingefügt werden? Damit habe ich bisher keine Erfahrung.

                Wenn du das Prinzip verstanden hast, weißt du auch, wo du es einsetzen musst.

                echo "<li>" . $node->nodeValue . "</li>" ;
                Kontextwechsel nicht missachten! Da fehlt noch ein htmlspecialchars() um das $node->nodeValue.

                Noch genauer als "um das ..." kann ich es nicht erklären. Zudem gibt es nicht nur den Kontextwechsel-Artikel sondern auch unzählige Einsatzbeispiele im Netz, nicht zuletzt auf der PHP-Handbuchseite zu dieser Funktion.

                dedlfix.

                1. Tach!

                  Also mal im Detail: Ich lese mit Magpie rssfeeds mehrerer webseiten ein (alles mit Genehmigung), die sind mit utf-8 codiert. Wenn sie bei mir ausgegeben werden - und ich ebenfalls utf-8 angebe, kommen trotzdem "zerschossene" Umlaute.
                  Hat jemand eine Idee, woran es sonst liegen kann?

                  An vielem. Solange du nicht sagst, wie das konkret aussieht oder eine Webseite zum schauen zeigst, wirst du keine gescheiteren Antworten bekommen können, als: Du musst es richtig machen. Dazu kann ich dir dann noch maximal Grundlagenliteratur verlinken: Themenkomplex Zeichenkodierung.

                  Wird für einen feed manchmal eine andere Zeichenkodierung verwendet als für die HTML-Seite überhaupt?

                  RSS-Feeds sind eine Form von XML, dessen Default-Kodierung UTF-8 ist. Das heißt nicht, dass man sie nicht ändern oder beim Feed-Erstellen keine Fehler machen kann.

                  Wenn ich für den PHP-Bereich meiner Seite noch mal extra einen bestimmten Code (header('Content-Type: text/html; charset=utf-8) festlege, hat das keine Auswirkung.

                  Schau nach, was der Browser bekommt und was er erkennt. Am besten finde ich dafür die livehttpheaders-Extension für den Firefox und seinen Seiteninformations-Dialog.

                  Rätsel über Rätsel. Gibt es keinen hunderptorzentigen Weg, den Zeichensatz einfach nach dem "echo" festzulegen?

                  Nein, im Dokument selbst ist es theoretisch schon zu spät. Du kannst nicht etwas dekodieren wollen, dessen Schlüssel(information) im Dokument selbst steht. Zumindest theoretisch. Praktisch basiert ja alles auf ASCII, so dass man zumindest diese Zeichen immer dekodieren kann und somit auch die Zeichnkodierungsinformation für die restlichen Zeichen auch ins Dokument schreiben kann. Die möglichen Positionen sind jedenfalls in den Unterseiten des verlinkten Dokuments beschrieben.

                  Außerdem habe ich noch auf meiner Seite das Problem, dass Anführungsstriche unten/oben nie richtig erscheinen, sondern immer als Fragezeichen.

                  Auch ein Zeichenkodierungsproblem. Du solltest dir dringend die Grundlagen dazu erarbeiten.

                  dedlfix.

                  1. Hallo, dedlfix, ich schicke mal einen Link mit, die Seite ist ein typischer Auszug:

                    Tagesschau wird als rss-feed mit magpie parser eingelesen und mit korrektem Zeichensatz abgebildet (es sei denn ich würde bei den meta-Angaben utf-8 angeben. ZDF und NDR gibt es nicht als feed - sie werden direkt von der website mit file_get_contents eingelesen und bringen Sonderzeichen statt Umlaute. Focus und FAZ werden wieder als feed eingelesen, bringen auch korrekte Umlaute aber keine Anführungsstriche unten/oben, sondern dann nur Fragezeichen. Quelltext wirst Du ja sehen können - vielleicht hast Du ja eine Idee.

                    http://www.weltammontag.de/index4.php

                    Was ich mit livehttpheader genau anfangen soll, weiß ich noch nicht. Die Zeichenkodierung sehe ich doch auch im Quelltext.

                    Dank und Gruß
                    pt004

                    > Tach!

                    Also mal im Detail: Ich lese mit Magpie rssfeeds mehrerer webseiten ein (alles mit Genehmigung), die sind mit utf-8 codiert. Wenn sie bei mir ausgegeben werden - und ich ebenfalls utf-8 angebe, kommen trotzdem "zerschossene" Umlaute.
                    Hat jemand eine Idee, woran es sonst liegen kann?

                    An vielem. Solange du nicht sagst, wie das konkret aussieht oder eine Webseite zum schauen zeigst, wirst du keine gescheiteren Antworten bekommen können, als: Du musst es richtig machen. Dazu kann ich dir dann noch maximal Grundlagenliteratur verlinken: Themenkomplex Zeichenkodierung.

                    Wird für einen feed manchmal eine andere Zeichenkodierung verwendet als für die HTML-Seite überhaupt?

                    RSS-Feeds sind eine Form von XML, dessen Default-Kodierung UTF-8 ist. Das heißt nicht, dass man sie nicht ändern oder beim Feed-Erstellen keine Fehler machen kann.

                    Wenn ich für den PHP-Bereich meiner Seite noch mal extra einen bestimmten Code (header('Content-Type: text/html; charset=utf-8) festlege, hat das keine Auswirkung.

                    Schau nach, was der Browser bekommt und was er erkennt. Am besten finde ich dafür die livehttpheaders-Extension für den Firefox und seinen Seiteninformations-Dialog.

                    Rätsel über Rätsel. Gibt es keinen hunderptorzentigen Weg, den Zeichensatz einfach nach dem "echo" festzulegen?

                    Nein, im Dokument selbst ist es theoretisch schon zu spät. Du kannst nicht etwas dekodieren wollen, dessen Schlüssel(information) im Dokument selbst steht. Zumindest theoretisch. Praktisch basiert ja alles auf ASCII, so dass man zumindest diese Zeichen immer dekodieren kann und somit auch die Zeichnkodierungsinformation für die restlichen Zeichen auch ins Dokument schreiben kann. Die möglichen Positionen sind jedenfalls in den Unterseiten des verlinkten Dokuments beschrieben.

                    Außerdem habe ich noch auf meiner Seite das Problem, dass Anführungsstriche unten/oben nie richtig erscheinen, sondern immer als Fragezeichen.

                    Auch ein Zeichenkodierungsproblem. Du solltest dir dringend die Grundlagen dazu erarbeiten.

                    dedlfix.

                    1. Tach!

                      Tagesschau wird als rss-feed mit magpie parser eingelesen und mit korrektem Zeichensatz abgebildet (es sei denn ich würde bei den meta-Angaben utf-8 angeben.

                      Der RSS-Feed der Tagesschau ist UTF-8-kodiert. Deine Seite sagt, sie wäre Windows-1252. Warum nimmst du nicht UTF-8 sondern beschränkst dich künstlich auf 256 direkt verwendbare Zeichen?

                      Anscheind kommt bei dir eine (unter Umständen verlustbehaftete) Umkodierung zum Einsatz, die UTF-8 nach Windows-1252 umschreibt.

                      ZDF und NDR gibt es nicht als feed - sie werden direkt von der website mit file_get_contents eingelesen und bringen Sonderzeichen statt Umlaute.

                      Kein Feed? Das mag beim NDR stimmen, aber was ist damit:
                      http://www.heute.de/ZDF/zdfportal/web/heute-Nachrichten/4672/3998/f9101d/ZDFheute--Nachrichten---Startseite.html?view=rss

                      Beide Seiten sind jedenfalls UTF-8-kodiert. Beim ZDF kodierst du anscheinend den bereits in UTF-8 vorliegenden Text nochmal von ISO-8859-1/Windows-1252 nach UTF-8, stellst das dann in deine Seite und erzählst, es sei Windows-1252. Beim NDR unterlässt du die Umkodierung und stellst den UTF-8-Text direkt in deine Seite und die sagt immer noch Windows-1252. Deswegen siehst du 4 Zeichen pro Umlaut beim ZDF und 2 beim NDR.

                      Focus und FAZ werden wieder als feed eingelesen, bringen auch korrekte Umlaute aber keine Anführungsstriche unten/oben, sondern dann nur Fragezeichen.

                      Spiegel hast du nicht erwähnt, aber der sendet seinen RSS-Feed als ISO-8859-1 (WTF?), den du anscheind 1:1 durchreichst. Focus und FAZ haben wieder einen UTF-8-RSS-Feed, den du wohl wieder umkodierst - nach ISO-8859-1 und nicht nach Windows-1252, denn so hättest du wenigstens die Anführungszeichen und die langen Gedankenstriche bewahrt. Generell musst du aber beim Umkodieren von einer auf einem Zeichensatz von derzeit 1.114.112 Zeichen basierenden Zeichenkodierung auf eine für einen Zeichensatz von maximal 256 Zeichen mit Verlusten rechnen. Diese äußern sich in einem Fragezeichen, weil ISO-8859-1/Windows-1252 keine Möglichkeit für einen anderen Platzhalter vorsieht. Deswegen ist es keine gute Idee, auf Windows-1252 (oder irgendwas anderes als UTF-8) zu setzen und Umkodierungen vorzunehmen (und die Grundlagenwissenerarbeitung zu vernachlässigen).

                      Quelltext wirst Du ja sehen können - vielleicht hast Du ja eine Idee.
                      http://www.weltammontag.de/index4.php

                      Der Doctype deiner Seite sagt, sie wäre XHTML und strict. Beides stimmt nicht. Aber das ist nur nebensächlich.

                      Was ich mit livehttpheader genau anfangen soll, weiß ich noch nicht. Die Zeichenkodierung sehe ich doch auch im Quelltext.

                      Bitte schau dir endlich die Grundlagen an, dann hast du an solchen Stellen keine Wissenslücken mehr. Die Zeichenkodierung steht dort nur als Ersatz-Wert. Eigentlich müsste sie im HTTP-Header stehen. Und wenn dort eine steht, hat sie Vorrang vor der im Dokument. Deswegen musst du dir beides anschauen, um Differenzen ausschließen zu können. Und vor allem, um die richtige Quelle zum Abfragen zu verwenden. Du hast doch sicher nicht fest irgendwo eingestellt, in welcher Kodierung die Quellen vorliegen, auf dass dieser Wert bei einer Änderung beim Anbieter ungültig wird?

                      P.S. Könntest du bitte wie hier üblich zitieren und nicht im TOFU-Stil? Danke.

                      dedlfix.

                      1. Hallo,

                        Der RSS-Feed der Tagesschau ist UTF-8-kodiert. Deine Seite sagt, sie wäre Windows-1252. Warum nimmst du nicht UTF-8 sondern beschränkst dich künstlich auf 256 direkt verwendbare Zeichen?

                        1252 ist mir von den Technikern von ONE.com empfohlen worden, weil ich so viel Schwierigkeiten vom utf-8 hatte im ersten Anlauf. Wenn ich in den meta-daten utf-8 Kodierung angab, kamen nämlich zunächst alle Umlaute bei allen mit magpie eingelesenen Daten verkehrt, obwohl die Seiten ihre rss-feeds angeblich in utf-8 ausgaben. Ich habe jetzt dafür eine Lösung
                        gefunden, indem ich utf-8 als Kodierung angebe und vor dem Auslesen der Daten mit magpie eingebe

                        define('MAGPIE_INPUT_ENCODING', 'UTF-8');  
                        define('MAGPIE_OUTPUT_ENCODING', 'UTF-8');  
                        
                        ~~~>.  
                        Auch das Problem mit den Anführungszeichen unten/oben ist damit gelöst.  
                          
                        Der NDR hat sich merkwürdigerweise neuerdings auch erledigt, alle Umlaute kommen (ohne magpie mit `file_get_contents `{:.language-php} ausgelesen) korrekt, ohne dass ich irgendwas geändert hätte.  
                          
                        Dafür kommt das ZDF (ebenfalls mit `file_get_contents `{:.language-php}ausgelesen immer noch mit zerschossenen Umlauten.(- der ZDF-rss-feed, den Du mir nanntest, ist der für die allgemeinen heute-Nachrichten - einen für die Wirtschaftsnachrichten haben sie aber noch nicht, wie sie mir schrieben. Den brauche ich aber, darum lese ich die Wirtschaftsseite direkt aus)  
                          
                        Eigentlich müsste es doch auch für mit ~~~php
                        file_get_contents  
                        
                        ~~~> eingelesene Daten so ein encoding geben wie beim magpie-parser?  
                          
                        Danke für Deine Bemühungen, ich bin durchaus dabei, mir weitere Grundlagen anzueignen.  
                          
                        Gruß  
                        pt004  
                          
                        
                        >   
                        > Der Doctype deiner Seite sagt, sie wäre XHTML und strict. Beides stimmt nicht. Aber das ist nur nebensächlich.  
                          
                        
                        
                        1. Tach!

                          Wenn ich in den meta-daten utf-8 Kodierung angab, kamen nämlich zunächst alle Umlaute bei allen mit magpie eingelesenen Daten verkehrt, obwohl die Seiten ihre rss-feeds angeblich in utf-8 ausgaben.

                          Die Kodierung der RSS-Feeds ist nicht nur angeblich so, sondern nach meinen Kurztests zwecks meiner vorigen Antwort auch tatsächlich so. Denn von einem Angeben allein ändert sich noch lange nichts. Es muss auch tatsächlich so wie angegeben kodiert werden.

                          Ich habe jetzt dafür eine Lösung
                          gefunden, indem ich utf-8 als Kodierung angebe und vor dem Auslesen der Daten mit magpie eingebe

                          define('MAGPIE_INPUT_ENCODING', 'UTF-8');

                          define('MAGPIE_OUTPUT_ENCODING', 'UTF-8');

                          
                          > Auch das Problem mit den Anführungszeichen unten/oben ist damit gelöst.  
                            
                          Hast du auch verstanden, warum es sich gelöst hat?  
                            
                          
                          > Der NDR hat sich merkwürdigerweise neuerdings auch erledigt, alle Umlaute kommen (ohne magpie mit `file_get_contents `{:.language-php} ausgelesen) korrekt, ohne dass ich irgendwas geändert hätte.  
                            
                          Das ist keine Grundlage für solch ein Projekt. Grundlagen lernen, verstehen wie dieses Zeichenkodierungszeug funktioniert und dann wissen, warum die einen Umlaute ohne weiteres Zutun richtig kommen und die anderen eine Konvertierung benötigen.  
                            
                          
                          > Dafür kommt das ZDF (ebenfalls mit `file_get_contents `{:.language-php}ausgelesen immer noch mit zerschossenen Umlauten.  
                          > Eigentlich müsste es doch auch für mit file\_get\_contents eingelesene Daten so ein encoding geben wie beim magpie-parser?  
                            
                          Die Daten kommen so, wie sie das ZDF kodiert hat. file\_get\_contents() ändert daran nichts. Wenn du sie in eine Seite mit anderer Kodierung einfügen willst, musst du sie entsprechend umkodieren. Deine Aufgabe wäre zunächst, die Zeichenkodierungsinformation aus dem HTTP-Header zu lesen und wenn da keine zu finden ist, das Dokument zu parsen und die entsprechenden Angabe zu finden. Dann vergleichst du die mit der Kodierung deiner Seite und kodierst die Daten gegebenenfalls um. Jetzt steht einem Einfügen (zeichenkodierungstechnisch) nichts mehr im Weg.  
                            
                            
                          dedlfix.
                          
                          1. Hallo, ich kann ja verstehen, wenn man eigentlich keine Lust hat, sich mit Anfängerfragen herumzuschlagen, aber dann muss man doch auch nicht antworten. Aber hier ständig den Ach-so-weisen Experten raushängen zu lassen, um dann mit pädagogischen Fragen "Hast Du auch verstanden.....(mein Kleiner)" alles in der Luft hängen zu lassen und zu signalisieren: Tja, Du hast keine Ahnung, aber ich!

                            Also wirklich, ich habe keine Lust auf Rate-Spiele. Ich habe gezeigt, dass ich mich sehr lange schon selbst bemühe, eine Lösung zu finden - und entweder jemand kann mir helfen mit einem Tip, mit dem man was anfangen kann oder man lässt es. Wer der Meinung ist, da muss man schon selbst drauf kommen, der braucht doch wirklich nicht zu antworten. Es zwingt einen ja keiner.

                            Tach!

                            Wenn ich in den meta-daten utf-8 Kodierung angab, kamen nämlich zunächst alle Umlaute bei allen mit magpie eingelesenen Daten verkehrt, obwohl die Seiten ihre rss-feeds angeblich in utf-8 ausgaben.

                            Die Kodierung der RSS-Feeds ist nicht nur angeblich so, sondern nach meinen Kurztests zwecks meiner vorigen Antwort auch tatsächlich so. Denn von einem Angeben allein ändert sich noch lange nichts. Es muss auch tatsächlich so wie angegeben kodiert werden.

                            Ich habe jetzt dafür eine Lösung
                            gefunden, indem ich utf-8 als Kodierung angebe und vor dem Auslesen der Daten mit magpie eingebe

                            define('MAGPIE_INPUT_ENCODING', 'UTF-8');

                            define('MAGPIE_OUTPUT_ENCODING', 'UTF-8');

                            
                            > > Auch das Problem mit den Anführungszeichen unten/oben ist damit gelöst.  
                            >   
                            > Hast du auch verstanden, warum es sich gelöst hat?  
                            >   
                            > > Der NDR hat sich merkwürdigerweise neuerdings auch erledigt, alle Umlaute kommen (ohne magpie mit `file_get_contents `{:.language-php} ausgelesen) korrekt, ohne dass ich irgendwas geändert hätte.  
                            >   
                            > Das ist keine Grundlage für solch ein Projekt. Grundlagen lernen, verstehen wie dieses Zeichenkodierungszeug funktioniert und dann wissen, warum die einen Umlaute ohne weiteres Zutun richtig kommen und die anderen eine Konvertierung benötigen.  
                            >   
                            > > Dafür kommt das ZDF (ebenfalls mit `file_get_contents `{:.language-php}ausgelesen immer noch mit zerschossenen Umlauten.  
                            > > Eigentlich müsste es doch auch für mit file\_get\_contents eingelesene Daten so ein encoding geben wie beim magpie-parser?  
                            >   
                            > Die Daten kommen so, wie sie das ZDF kodiert hat. file\_get\_contents() ändert daran nichts. Wenn du sie in eine Seite mit anderer Kodierung einfügen willst, musst du sie entsprechend umkodieren. Deine Aufgabe wäre zunächst, die Zeichenkodierungsinformation aus dem HTTP-Header zu lesen und wenn da keine zu finden ist, das Dokument zu parsen und die entsprechenden Angabe zu finden. Dann vergleichst du die mit der Kodierung deiner Seite und kodierst die Daten gegebenenfalls um. Jetzt steht einem Einfügen (zeichenkodierungstechnisch) nichts mehr im Weg.  
                            >   
                            >   
                            > dedlfix.
                            
                            1. was ich eigentlich sagen wollte: Danke für die Mühe, aber ich suche mir jetzt doch lieber woanders Hilfe!

                            2. Tach!

                              Hallo, ich kann ja verstehen, wenn man eigentlich keine Lust hat, sich mit Anfängerfragen herumzuschlagen, aber dann muss man doch auch nicht antworten.

                              Oh doch, ich habe Lust, an deiner Problemlösung mitzuwirken, aber ich habe keine Lust, den Inhalt der bereits verlinkten Grundlagenliteratur hier nochmal zu erzählen. Wenn du an deren Inhalt etwas nicht verstehst, dann frag bitte konkret. Anscheinend liest du sie nicht, weil du immer wieder Fragen stellst, die dort bereits beantwortet sind.

                              Aber hier ständig den Ach-so-weisen Experten raushängen zu lassen, um dann mit pädagogischen Fragen "Hast Du auch verstanden.....(mein Kleiner)" alles in der Luft hängen zu lassen und zu signalisieren: Tja, Du hast keine Ahnung, aber ich!

                              So sollte das nicht wirken, aber ohne dieses Verständnis kommen wir nicht weiter. Du springst dann von einem Zufall zum nächsten und kannst dir dann das nächste Problem wieder nicht erklären. Ich dränge darauf, dass du das liest, weil es wichtig für das Verständnis der Problematik ist.

                              Also wirklich, ich habe keine Lust auf Rate-Spiele. Ich habe gezeigt, dass ich mich sehr lange schon selbst bemühe, eine Lösung zu finden - und entweder jemand kann mir helfen mit einem Tip, mit dem man was anfangen kann oder man lässt es.

                              Der Tipp heißt: Lesen und Verstehen.

                              Wer der Meinung ist, da muss man schon selbst drauf kommen, der braucht doch wirklich nicht zu antworten. Es zwingt einen ja keiner.

                              Natürlich kann man mal Probleme beim Verstehen haben, aber dann frag bitte konkret nach, dann kann ich es dir mit anderen Worten zu erklären versuchen. Ich bin schließlich kein Hellseher und weiß nicht vorher, was du verstehst und was nicht. Also bitte hilf mir mit konkreten Fragen, damit ich dir bei der Lösungsfindung helfen kann.

                              Und wenn du die verlinkte Literatur nicht lesen möchtest, dann sag es mir bitte auch, dann kann ich nämlich aufhören, an der Problemlösung mitzuwirken.

                              dedlfix.

                      2. Hallo,

                        Was ich mit livehttpheader genau anfangen soll, weiß ich noch nicht. Die Zeichenkodierung sehe ich doch auch im Quelltext.
                        Bitte schau dir endlich die Grundlagen an, dann hast du an solchen Stellen keine Wissenslücken mehr. Die Zeichenkodierung steht dort nur als Ersatz-Wert. Eigentlich müsste sie im HTTP-Header stehen. Und wenn dort eine steht, hat sie Vorrang vor der im Dokument.

                        und was noch wichtiger ist, aber gerade von Anfängern oft übersehen wird: Die Angabe einer Codierung, selbst wenn sie an der richtigen Stelle erfolgt, reicht nicht! Die Information muss auch tatsächlich in dieser Codierung übermittelt werden.
                        Mit anderen Worten: Wenn Inhalte in ISO-8859-1 (oder meinetwegen Windows-1252) vorliegen, werden sie nicht dadurch zu UTF-8, dass man _behauptet_, es sei UTF-8. Das Wasser in einer Flasche wird ja auch nicht dadurch zu Wein, dass man ein Wein-Etikett draufklebt.

                        P.S. Könntest du bitte wie hier üblich zitieren und nicht im TOFU-Stil? Danke.

                        Ja, das wäre sehr wünschenswert.

                        Ciao,
                         Martin

                        --
                        why the heck do you jerk think, that wir ein doppelposting nicht bemerken, wenn you zwischendurch the sprache wechselst?
                          (wahsaga)
                        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(