AirMax: echo(): <?xml version = "1.0" encoding="UTF-8"?>

Guten Morgen SELFHTML-ler,

stelle mich zu doof an für die Ausgabe der XML-Deklaration in PHP. Habe einen Kontextfehler und keine Ahnung, wie ich den wegbekomme. Habe schon folgendes probiert:

echo '<?xml version =\"1.0\" encoding=\"UTF-8\"?>';  

und

include 'xml_Deklaration.txt';

Aber PHP verschluckt sich jedes Mal an "<?xml" - logischerweise.

Kann mir jemand auf die Sprünge helfen? Danke Euch!

Gruss,
AirMax

  1. @@AirMax:

    nuqneH

    stelle mich zu doof an für die Ausgabe der XML-Deklaration in PHP.

    Da sei erstmal die Frage gestattet, wozu du die unnütze XML-Deklaration überhaupt haben willst und damit IE 6 in den Quirksmodus schickst?

    Qapla'

    --
    Volumen einer Pizza mit Radius z und Dicke a: pi z z a
    1. Morgen Gunnar

      Da sei erstmal die Frage gestattet, wozu du die unnütze XML-Deklaration überhaupt haben willst und damit IE 6 in den Quirksmodus schickst?

      Baue eine Weiche: Je nachdem, ob der Client den MIME-Type "application/xhtml+xml" versteht gebe ich für das Dokument den entsprechenden header aus. Falls ja, wollte ich eben noch die XML-Deklaration ausgeben. Aber daran scheitere ich eben...

      1. @@AirMax:

        nuqneH

        Da sei erstmal die Frage gestattet, wozu du die unnütze XML-Deklaration überhaupt haben willst und damit IE 6 in den Quirksmodus schickst?

        Baue eine Weiche: Je nachdem, ob der Client den MIME-Type "application/xhtml+xml" versteht gebe ich für das Dokument den entsprechenden header aus. Falls ja, wollte ich eben noch die XML-Deklaration ausgeben.

        Das beantortet nicht die Frage: Wozu?

        Qapla'

        --
        Volumen einer Pizza mit Radius z und Dicke a: pi z z a
        1. Das beantortet nicht die Frage: Wozu?

          Siehe hier http://forum.de.selfhtml.org/?t=195310&m=1307142

    2. Hallo Gunnar,

      stelle mich zu doof an für die Ausgabe der XML-Deklaration in PHP.
      Da sei erstmal die Frage gestattet, wozu du die unnütze XML-Deklaration überhaupt haben willst und damit IE 6 in den Quirksmodus schickst?

      deswegen fragte ich auch nach dem Kontext. Vielleicht will der OP ja gar kein HTML-Dokument erstellen, sondern ein RSS-Feed oder sowas.

      Ciao,
       Martin

      --
      Lache, und die Welt wird mit dir lachen.
      Schnarche, und du schläfst allein.
      1. @@Der Martin:

        nuqneH

        Da sei erstmal die Frage gestattet, wozu du die unnütze XML-Deklaration überhaupt haben willst und damit IE 6 in den Quirksmodus schickst?

        deswegen fragte ich auch nach dem Kontext. Vielleicht will der OP ja gar kein HTML-Dokument erstellen, sondern ein RSS-Feed oder sowas.

        Bei keinem XML-1.0-Dokument ist eine XML-Deklaration <?xml version = "1.0" encoding="UTF-8"?> notwendig.

        Qapla'

        --
        Volumen einer Pizza mit Radius z und Dicke a: pi z z a
        1. Bei keinem XML-1.0-Dokument ist eine XML-Deklaration <?xml version = "1.0" encoding="UTF-8"?> notwendig.

          ... aber standardkonform ;)

      2. Morgen Der Martin,

        deswegen fragte ich auch nach dem Kontext. Vielleicht will der OP ja gar kein HTML-Dokument erstellen, sondern ein RSS-Feed oder sowas.

        will ein HTML-Dokument erstellen!

        Gruss

  2. Hallo,

    echo '<?xml version =\"1.0\" encoding=\"UTF-8\"?>';

    ist dir der Unterschied zwischen einfachen und doppelten Anführungszeichen in PHP bewusst? Die Maskierung ist im obigen Beispiel jedenfalls nicht nur überflüssig, sondern falsch. Text in einfachen Anführungszeichen wird 1:1 ausgegeben.

    include 'xml_Deklaration.txt';
    Aber PHP verschluckt sich jedes Mal an "<?xml" - logischerweise.

    Logischerweise? - Nein, logisch ist das nicht. Es sei denn, die PHP-Option short_open_tags wäre bei deinem Webhoster aktiviert. Das kann tatsächlich ein Stolperstein sein.

    Kann mir jemand auf die Sprünge helfen? Danke Euch!

    Was genau ist das Problem, bzw. der Kontext?

    Ciao,
     Martin

    --
    Schon gewusst, dass Aftershave trotz des Namens eigentlich eher fürs Gesicht gedacht ist?
  3. Hi!

    echo '<?xml version =\"1.0\" encoding=\"UTF-8\"?>';
    und
    include 'xml_Deklaration.txt';
    Aber PHP verschluckt sich jedes Mal an "<?xml" - logischerweise.

    Warum sollte es das? In dem was du hier zeigst, befindet sich das <? in einem String, und ein solcher wird außer nach Variablennamen (im Falle von "") nicht nach seinem Inhalt bewertet. Da kann also x Mal <? oder <?php oder sonstwas mit <? drinstehen, ohne dass es einen Fehler ergibt. Was anderes wäre, wenn <? außerhalb von <?php ?>-Blöcken steht und die short_open_tags aktiviert sind.

    Kann mir jemand auf die Sprünge helfen? Danke Euch!

    Zeig mal was wirklich ist, inklusive Fehlermeldungen.

    Lo!

    1. Hi Lo,

      Zeig mal was wirklich ist, inklusive Fehlermeldungen.

      Das ist gerade schlecht. Bin nicht zu Hause. Heute Abend kann ich was liefern. Hoffe, es schaut dann noch mal jemand zu diesem thread!

      Danke

      1. Hi!

        Heute Abend kann ich was liefern. Hoffe, es schaut dann noch mal jemand zu diesem thread!

        Na, nun sei mal nicht so pessimistisch. :-) Die individuelle Konfigurationsmöglichkeit des hiesigen Forums ermöglicht es, dass keine Antwort unwillentlich übersehen wird.

        Lo!

        1. Na, nun sei mal nicht so pessimistisch. :-) Die individuelle Konfigurationsmöglichkeit des hiesigen Forums ermöglicht es, dass keine Antwort unwillentlich übersehen wird.

          Da bin ich aber froh. Ich dachte bisher immer, dass alles, was man nach 2x Scrollen mit der Maus nicht auf dem Monitor sieht, "erledigt" ist.

          Also bis denne

          1. Hi!

            Na, nun sei mal nicht so pessimistisch. :-) Die individuelle Konfigurationsmöglichkeit des hiesigen Forums ermöglicht es, dass keine Antwort unwillentlich übersehen wird.
            Da bin ich aber froh. Ich dachte bisher immer, dass alles, was man nach 2x Scrollen mit der Maus nicht auf dem Monitor sieht, "erledigt" ist.

            Für das Laufpublikum mag das zutreffen. Das Stammpublikum liest bis in den letzten Winkel (wenn nicht mangels Interesse der Thread schon ausgeblendet wurde).

            Lo!

            1. Hallo Lo!, Martin & Gunnar,

              habe mir die ganze Sache nochmals angeschaut und auch den Unterschied zwischen echo "..."; und echo '...'; verstanden. Und ich muss gestehen, daß die Ausgabe echo '<?xml version="1.0" encoding="UTF-8"?>' . "\r\n"; von Anfang an funktioniert hat. Ich habe bloss immer auf das Browserfenster geachtet und mich gewundert, dass FF nichts anzeigt. Schliesslich heißt echo(); ja "Ausgabe". Von diesem Punkt an habe ich dann nur noch wie wild herumprobiert. Das Ergebnis waren dann wirre Parse-Fehlermeldungen. Wäre ich von Anfang an mal so schlau gewesen & hätte mal in den Quelltext geschaut, dann hätte ich mir die Ärgerei & den thread sparen können. Habe jetzt folgendes:

                
              <?php  
              if (  
              	stristr($_SERVER['HTTP_ACCEPT'], 'application/xhtml+xml')  
                 ) {  
              	header('Content-Type: application/xhtml+xml; charset=UTF-8');  
              	echo '<?xml version="1.0" encoding="UTF-8"?>' . "\r\n";  
              	 }  
              else {  
              	header('Content-Type: text/html; charset=UTF-8');  
              	 }  
              ?>
              

              Unter FF funktioniert alles prima. IE sollte auch mitspielen. Muss ich aber morgen im Büro noch testen.
              Trotzdem danke für Eure Hilfe & sorry für die unnötige Aufregung.

              Schönen Abend & Gruß
              AirMax

          2. Hallo,

            Na, nun sei mal nicht so pessimistisch. :-) Die individuelle Konfigurationsmöglichkeit des hiesigen Forums ermöglicht es, dass keine Antwort unwillentlich übersehen wird.
            Da bin ich aber froh. Ich dachte bisher immer, dass alles, was man nach 2x Scrollen mit der Maus nicht auf dem Monitor sieht, "erledigt" ist.

            oh, keine Bange. Zumindest die meisten regelmäßigen Nutzer gehen die Liste der Threads immer wieder komplett durch. Auch Beiträge, die in einem seit Tagen eingeschlafenen Thread plötzlich doch noch auftauchen, werden noch gelesen und beachtet.
            Auf zufällige, sporadische Besucher mag das Verhalten zutreffen, das du beschreibst.

            So long,
             Martin

            --
            Dem Philosoph ist nichts zu doof.
    2. Hallo,

      include 'xml_Deklaration.txt';
      Aber PHP verschluckt sich jedes Mal an "<?xml" - logischerweise.
      Warum sollte es das? In dem was du hier zeigst, befindet sich das <? in einem String

      nein, bei dem Beispiel mit dem include nicht. Da müsste die XML-Deklaration unfrisiert in der includierten Textdatei stehen, damit das Ganze einen Sinn bekommt.

      Was anderes wäre, wenn <? außerhalb von <?php ?>-Blöcken steht und die short_open_tags aktiviert sind.

      Außerhalb eines PHP-Blocks steht es damit schon mal. Und wenn man die Datei mit include einbindet, wird sie ja auch vom PHP-Parser durchgenudelt. Etwas anderes wäre es mit readfile().
      Aber warum so umständlich, wenn ein einfaches echo genügt - jedenfalls wenn man es richtig macht. ;-)

      Ciao,
       Martin

      --
      Die letzten Worte des Polizisten:
      Ich hab mitgezählt, Leute: Sechs Schuss, jetzt hat er keine Munition mehr!
      1. Auch hallo

        Aber warum so umständlich, wenn ein einfaches echo genügt - jedenfalls wenn man es richtig macht. ;-)

        Eben. Also, ich werde heute Abend die Sache nochmals unter die Lupe nehmen und mich dann melden.

      2. Hi!

        include 'xml_Deklaration.txt';
        Warum sollte es das? In dem was du hier zeigst, befindet sich das <? in einem String
        nein, bei dem Beispiel mit dem include nicht. Da müsste die XML-Deklaration unfrisiert in der includierten Textdatei stehen, damit das Ganze einen Sinn bekommt.

        Okay, anhand des Namens kann man es vielleicht erraten, doch den hab ich mir nicht genau angesehen, weil sich daraus sowieso keine absoluten Schlussfolgerungen ableiten lassen.

        Was anderes wäre, wenn <? außerhalb von <?php ?>-Blöcken steht und die short_open_tags aktiviert sind.
        Außerhalb eines PHP-Blocks steht es damit schon mal. Und wenn man die Datei mit include einbindet, wird sie ja auch vom PHP-Parser durchgenudelt. Etwas anderes wäre es mit readfile().

        Wenn man davon ausgeht, dass ...
        Und ja, readfile() wäre schon allein deshalb die bessere Variante, wenn man Nicht-PHP-Code durchreichen möchte.

        Lo!