XHTML macht Parse Error

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

  • #16
    ich habs ganz zu anfang mal geschrieben. In der Escape-Variante.

    hausmischung, der Fehler wird vom PHP Interpr. gemacht. er erkennt die <? als anfang des PHP. und das was danach kommt ist kein PHP-Syntax. Also Fehler!

    Kommentar


    • #17
      Dann versuch mal das \?>

      Kommentar


      • #18
        tut mir leid, kann dein Problem nich nachvollziehen.

        schau mal hier: http://www.wi01h.de/~temp/xml

        vielleicht hast du dich ja einfach nur verschraipfählerdoiveld
        Zuletzt geändert von mrhappiness; 18.02.2003, 21:26.
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #19
          Ey, danke für Euren Effort.

          Leider sieht bei mir des ganze ungefähr so aus:

          http://www.per-net.ch/garage/aav/phpinfo.php

          Und des ist der Code:
          PHP-Code:
          <?php
              
          echo '<?xml version="1.0" encoding="iso-8859-1" ?>';
              echo 
          "Hier kommt noch was";
          ?>

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml">
          <head>
          <title>Unbenanntes Dokument</title>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
          </head>
              <?php
                  
          echo "Hallo XHTHML!";
              
          ?>
          <body>
          </body>
          </html>
          Schaut doch rigendwie nicht so viel anders aus, oder?

          Na, jetzt wart ich mal, ob wer von Euch noch Geduld hat und sonst geb ich auf und hoffe dass mir der Vollmond heut Nacht noch ne Eingebung schickt.

          Pierre

          Kommentar


          • #20
            Hi,

            und genau aus diesen Grund steuert man, wenn zwei Parser genutzt werden, mit der API des einen auf die Dokumentenerstellung des Anderen.

            Zum Bleistift mit DOM oder SAX von PHP auf XML bzw. XHTML.
            Damit sich die Parser nicht ins Gehege kommen....

            cu

            Blaster
            Yuppi, endlich Elite ...

            Kommentar


            • #21
              Hi Blaster,

              das klingt so, als sei für dich alles klar, nur versteh ich als Anfänger deine Antwort leider nicht. Kannst du des noch für "Analphabeten" erklären?

              Oder kann ich des wo nachlesen?


              Pierre

              Kommentar


              • #22
                Morjen, miam miam ...

                Durch die File extension '.php' von phpinfo.php (übrigs schlecht gewählter Name -> phpinfo() ) signalisierst man PHP wird als erstes bearbeitet. Und der PHP Parser (z.B. Zend-Engine) differenziert nicht zwischen PHP '<?' und '<?xml'. D. h. bei der Übersetzung wird der PHP-Bereich nach dem ersten '?>' abgebrochen, egal welche Hochkommata oder PHP-Funktionen es umgibt.

                Die Lösung ist, man nutzt PHP - API´s die XML -Doc´s erstellen, als File oder In-Memory, mit denen ein XML Parser arbeiten kann. Dafür gibt es zwei Grundmodell: Die SAX-API die ein File von oben nach unten bearbeitet wie bei EXPAT oder die DOM-API wie DOMXML, die Knotensteuerung und Bearbeitung ermöglicht.

                Auch grundsätzlich ist deinen Ansatz 'ungeschickt':
                Der wichtiger Vorzug von XML gegenüber Templates liegt in der klaren Trennung von Ansicht und Dokument und der Trennung von Dokumenten mit der Bearbeitung von Skript- bzw. Programmiersprachen über API´s. Z.B:
                PHP-Code:
                .             XSL  <-    |         <-  (DOMMSXML4) <- ASP
                .             CSS  <-    |         <-  (DOMXerces)  <- JSP
                .  (X)HTML <-  XSLT <-  XML      <- (SAXSablotron) <- PHP
                .      PDF    <-    |
                .      
                SVG    <-    |
                .     
                SMIL   <-     |
                .     
                XML     <-    | 
                Dein Ansatz ist ein sehr schlechter Ansatz des SAX Modells. Für den Rest googlen....

                cu

                Blaster
                Yuppi, endlich Elite ...

                Kommentar


                • #23
                  Tja, das muss ich erst mal Verarbeiten und mich mal fette Weiterbilden. Ist alles Zeugs wovon ich net die Ahnung hab, aber deine Antwort macht mir Mut, dass nu den richtigen Weg finden tu.

                  Schluck!

                  Danke für deine Ausführungen.

                  Pierre

                  Kommentar


                  • #24
                    mal ein möglicher quick-and-dirty lösungsvorschlag für den problem:

                    schreib das <?xml ...>-zeug doch einfach in eine reine text-datei, und include diese dann am anfang deines php-scriptes.

                    reine textdatei -> wird nicht geparsed -> kein problem mit dem php-parser.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #25
                      oder du nimmst den <? teil auseinander
                      PHP-Code:
                      echo "<"."?"."xml version='1.0' encoding='iso-8859-1' ?".">"
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #26
                        Hallo,

                        ihr Experten )

                        Der Fehler wird durch die short_open_tags verursacht!

                        Wenn man PHP und XHMTL mischen will muss man a) sauber programmieren und b) php.ini und den Server richtig konfigurieren!

                        [COLOR=red]<? echo "<?xml bla bla?>"; ?>[/COLOR]

                        Das kann nicht funktionieren weil der PHP-Interpreter (ja der is aufm Server) das Ding zuerst durchnudelt und immer denkt wenn ein "<?" kommt, dass jetzt PHP danach kommt. Da xml auch diese open tags ("<?xml...")hat gibt das natürlich nen Fehler...

                        Wenn Du diese Sachen mischen willst dann mach folgendes:

                        1. Verwende nur "<?php" um PHP-Script-Anfänge zu definieren!
                        2. Geh in die PHP.ini an folgende Stelle(ziemlich am Anfang):

                        PHP-Code:
                        ;;;;;;;;;;;;;;;;;;;;
                        ; Language Options ;
                        ;;;;;;;;;;;;;;;;;;;;

                        ; Enable the PHP scripting language engine under Apache.
                        engine = On

                        ; Allow the <? tag.  Otherwise, only <?php and <scripttags are recognized.  
                        NOTEUsing short tags should be avoided when developing applications or
                        libraries that are meant for redistribution, or deployment on PHP
                        servers which are not under your controlbecause short tags may not
                        be supported on the target server. For portableredistributable code,
                        be sure not to use short tags.
                        short_open_tag Off
                        Bei Dir steht in der letzten Zeile "short_open_tag = on". Änder das zu "off" und denk danach daran immer PHP-Teile wie folgt einzuleiten:"<?php"
                        Dann klappts auch )

                        Achja und falls Du Dich wunderst warum nicht der komplette XHTML-Code richtig angezeigt wird, dann lösch bei "default_mime_type=text/html" das "text/html" raus, dann übernimmt der Browser den Orginal MIME-Typ...

                        Viel Spass

                        Yogurux

                        /edit löl is ja schon ein Weilchen her...
                        Zuletzt geändert von yogurux; 10.09.2003, 00:38.

                        Kommentar


                        • #27
                          He, was ne Freude, ein halbes Jahr nach meiner Frage noch die Antwort zu bekommen. Hatte damals rumexperimentiert und den Versuch dann ohne XHTML geölst, da es auch so ging. Werd die Sache bei mir lokal mal testen, was mein Provider dazu meint, muss ich dann wohl erst mal prüfen.

                          Besten Dank Yogurux

                          Kommentar


                          • #28
                            mann könnte auch escapen denke ich mal.

                            Kommentar


                            • #29
                              Mit folgendem Script funktioniert es bei mir perfekt, ohne irgendwas in der php.ini ändern zu müssen:

                              Code:
                              <?php
                              echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
                              ?>
                              Dieser Code muss ganz an den Anfang der .php-Datei. Wichtig sind die \.

                              Kommentar

                              Lädt...
                              X