Hallo,
also ich will das ganze nicht zu kompliziert machen und lasse deswegen den Teil Script für die XML-Deklaration weitergabe ganz weck und füge die ganz normale XML-Deklaration nach dem PHP Code ein. Das sieht dann so aus bei mir:
HTML:
<?php
function ua_accepts_xhtml() {
$xhtml = FALSE;
$check_pattern = '|application/xhtml\+xml(?!\s*;\s*q=0)|';
if (($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1') and
isset($_SERVER['HTTP_ACCEPT']) and
preg_match($check_pattern, $_SERVER['HTTP_ACCEPT'])) {
$xhtml = TRUE;
}
if(isset($_SERVER['HTTP_USER_AGENT'])) {
if(preg_match("|rv\:0.9|", $_SERVER['HTTP_USER_AGENT'])) {
$xhtml = FALSE;
}
}
return $xhtml;
}
$content_type = ua_accepts_xhtml() ? 'application/xhtml+xml' : 'text/html';
header('Content-Type: ' . $content_type . ';charset=utf-8');
header('Vary: Accept');
?>
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
Wenn ich das mit XML-Deklaration mache dann hat es wohl gleichzeitig noch den Vorteil das ich die Seite im Qiurks Modus und somit für den IE 5.0 zusätzlich optimiere.
Weiter benutze ich in der Seite den Media Typen text/html.
Die Seite habe ich mit Endung xhtml abgespeichert um es lokal auf meinem Rechner testen zu können. Wenn ich die Seite dann aber z.B. in Firefox lade, dann bekomme ich eine Fehlermeldung:
xml processing instruction not at start of external entity
Dabei wird auf die XML Deklaration
HTML:
<?xml version="1.0" encoding="iso-8859-1"?>
mit Betohnung auf die Start Klammer des XML Tags hingewiesen, ich glaube es liegt irgendwie am ? in der Klammer. Wenn ich die gleiche Seite auf den Server lade und im Firefox lade, bekomme ich keine Fehlermeldung mehr.
Wenn ich die Seite mal als php abspeicher und auf mein Server lade zum testen, dann bekomme ich wieder folgende Fehlermeldung:
Parse error: parse error, unexpected T_STRING dabei wird auch genau auf die gleiche Zeile wo der Fehler sein soll hingewiesen wie bei der ersten Fehlermeldung.
Also als php Datei geht lokal und auf server nicht.
Als xhtml geht auf server und lokal nicht. Dabei habe ich jedesmal den PHP Code für Media Typ ausgabe und XML-Deklaration im Quelltext drin gelassen.
So, das ist ziemlich seltsam. Ich kann das ganze nur auf den Zusammenhang der Tag Klammern vom PHP Code und der XML-Deklaration zurückführen mit Betohnung auf die Fragezeichen in beiden Klammern, den wenn ich den PHP Code oder die XML-Deklaration rausnehme, dann kommt es zu keinen Fehlermeldungen mehr.
ich hoffe das du das so nachvollziehen kannst um mir den Fehler zu analisieren, wenn nicht dann frage mich bitte nochmal, ich setzte auf dich.
gruß
feh