son gohan
Erfahrenes Mitglied
Hallo,
ich habe da ein PHP Code von Thomas Scholz, welches ich in meine XHTML Seite einbauen will damit der User Agent des Brwoser zuerst abgefragt werden soll ob XHTML vom Browser unterstützt wird oder nicht. Wenn es vom Browser unterstützt wird, sollte der dazugehörige xhtml Madia Typ weitergegeben werden, wenn es nicht der Fall ist, dann soll der normale Media Typ für HTML weitergegeben werden.
Aber irgendwie stören sich die XML-Deklaration und der PHP Code in meiner Seite gegenseitig und ich bekomme eine Fehlermeldung vom XML Parser. Ich habe den PHP Code so wie er unten angegeben ist am Anfang meinerXHTML-Seite eingebaut. Danach in der nächsten Zeile habe ich direkt die XML-Deklaration eingebaut.
PHP Code von Thomas Scholz:
darunter wie bereits erwähnt habe ich meine XML-Deklaraton eingebaut:
Die Seite ist als xhtml lokal auf meinem Rechner abgespeichert und vom Schema Validator und normalen Validator aus valide.
Wenn ich die Seite aber lokal auf meinem Rechner im z.B. Firefox Browser lade, bekomme ich vom XML-Parser eine Fehlermeldung wie folgt:
Wenn ich aber die gleiche Seite auf mein Server lade, und im Firefox Browser anschaue, dann bekomme ich keine Fehlermeldung mehr und die Seite wird auch angezeigt. Aber es wundern micg daran einige Sachen, zuerst habe ich mir gedacht das das ganze wohl auf dem Server deswegen läuft, weil der PHP-Interpreter so erst eingeschaltet wurde vom Server, aber als ich die gleiche Seite mit Endung xhtml dann im IE Browser geladen habe, wurde Sie auch in im angezeigt, wobei der IE doch keine XHTML Seiten anzeigen können sollte?.
Wenn ich mir dann auch noch den Quelltext im IE und den anderen Browser anschaue, dann wird am Anfang der komplette PHP Code wi ich ihn auch reingeschrieben habe angezeigt. das sollte doch aber nicht so sein, normalerweise sollte doch viel eher nur irgendwie der Medi Typ ausgegeben werden und nicht der komplette Quelltext sichtbar sein und vorallem sollte die XHTML Seite doch nicht im IE Brwoser erscheinen.
Also ich brauche hier unbedingt etwas Aufklärung, so einen seltsames Fall habe ich bis jetzt in noch keinem Forum nachlesen können.
Aber vielleicht liegt es wohl einfach daran, das der PHP Code von Thomas Scholz nicht richtig eingebaut wurde von mir.
Wie müsste ich das ganze den richtig einbauen. Hier auf der Seite http://home.arcor.de/terrikay/tutorials/xhtml.html wo ich den Code her habe steht auch nicht genau wo man das ganze einbauen muss. Und ob man den meta Tag
weckläst oder was man Standarmäsig darein schreibt. Oder am ehesten, ob der PHP Code wohl doch nicht genau in dieses Meta Tag hineingehört.
Nun ich bin völlig Ahnungslos und weis jetzt echt nicht merh weiter.
ich habe da ein PHP Code von Thomas Scholz, welches ich in meine XHTML Seite einbauen will damit der User Agent des Brwoser zuerst abgefragt werden soll ob XHTML vom Browser unterstützt wird oder nicht. Wenn es vom Browser unterstützt wird, sollte der dazugehörige xhtml Madia Typ weitergegeben werden, wenn es nicht der Fall ist, dann soll der normale Media Typ für HTML weitergegeben werden.
Aber irgendwie stören sich die XML-Deklaration und der PHP Code in meiner Seite gegenseitig und ich bekomme eine Fehlermeldung vom XML Parser. Ich habe den PHP Code so wie er unten angegeben ist am Anfang meinerXHTML-Seite eingebaut. Danach in der nächsten Zeile habe ich direkt die XML-Deklaration eingebaut.
PHP Code von Thomas Scholz:
HTML:
<?php
function ua_accepts_xhtml() {
/* Prüft, ob an den UA XHTML ausgeliefert werden darf.
* Gibt TRUE zurück, wenn ja, FALSE, wenn nicht. */
/* In dubio pro HTML. */
$xhtml = FALSE;
$check_pattern = '|application/xhtml\+xml(?!\s*;\s*q=0)|';
/* Behauptet der UA, XHTML zu können? */
if (($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1') and
isset($_SERVER['HTTP_ACCEPT']) and
preg_match($check_pattern, $_SERVER['HTTP_ACCEPT'])) {
$xhtml = TRUE;
}
/* Ãltere Geckos haben ein paar Crashbugs mit XHTML. */
if(isset($_SERVER['HTTP_USER_AGENT'])) {
if(preg_match("|rv\:0.9|", $_SERVER['HTTP_USER_AGENT'])) {
$xhtml = FALSE;
}
}
return $xhtml;
}
/* Anwendung. */
$content_type = ua_accepts_xhtml() ? 'application/xhtml+xml' : 'text/html';
header('Content-Type: ' . $content_type . ';charset=utf-8');
header('Vary: Accept, User-Agent');
header('Cache-Control: private');
?>
darunter wie bereits erwähnt habe ich meine XML-Deklaraton eingebaut:
HTML:
<?xml version="1.0" encoding="ISO-8859-1"?>
Die Seite ist als xhtml lokal auf meinem Rechner abgespeichert und vom Schema Validator und normalen Validator aus valide.
Wenn ich die Seite aber lokal auf meinem Rechner im z.B. Firefox Browser lade, bekomme ich vom XML-Parser eine Fehlermeldung wie folgt:
HTML:
XML Parsing Error: xml processing instruction not at start of external entity Location: file:///C:/xhtmlv.xhtml Line Number 31, Column 1:<?xml version="1.0" encoding="ISO-8859-1"?>
Wenn ich aber die gleiche Seite auf mein Server lade, und im Firefox Browser anschaue, dann bekomme ich keine Fehlermeldung mehr und die Seite wird auch angezeigt. Aber es wundern micg daran einige Sachen, zuerst habe ich mir gedacht das das ganze wohl auf dem Server deswegen läuft, weil der PHP-Interpreter so erst eingeschaltet wurde vom Server, aber als ich die gleiche Seite mit Endung xhtml dann im IE Browser geladen habe, wurde Sie auch in im angezeigt, wobei der IE doch keine XHTML Seiten anzeigen können sollte?.
Wenn ich mir dann auch noch den Quelltext im IE und den anderen Browser anschaue, dann wird am Anfang der komplette PHP Code wi ich ihn auch reingeschrieben habe angezeigt. das sollte doch aber nicht so sein, normalerweise sollte doch viel eher nur irgendwie der Medi Typ ausgegeben werden und nicht der komplette Quelltext sichtbar sein und vorallem sollte die XHTML Seite doch nicht im IE Brwoser erscheinen.
Also ich brauche hier unbedingt etwas Aufklärung, so einen seltsames Fall habe ich bis jetzt in noch keinem Forum nachlesen können.
Aber vielleicht liegt es wohl einfach daran, das der PHP Code von Thomas Scholz nicht richtig eingebaut wurde von mir.
Wie müsste ich das ganze den richtig einbauen. Hier auf der Seite http://home.arcor.de/terrikay/tutorials/xhtml.html wo ich den Code her habe steht auch nicht genau wo man das ganze einbauen muss. Und ob man den meta Tag
HTML:
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
Nun ich bin völlig Ahnungslos und weis jetzt echt nicht merh weiter.
Zuletzt bearbeitet: