Hi,
Also erklärt ihm doch einfach, was in der Datei stehen muss und nicht, was im Source-code sichtbar ist und was nicht.
Der Entwickler legt dies über die Serverkonfiguration und nicht über den Dateiinhalt fest. (Noch einfacher und klarer kann man es glaub ich nicht ausdrücken)
ich versuch's dennoch mal anhand eines ähnlichen Beispiels, nämlich HTML-E-Mails. Auch diese bestehen aus (mindestens) zwei Teilen:
1. Den Mail-Headern. Hierin steht bei als HTML anzuzeigenden Mails auch die Information hierüber, z.B.:
Content-Type: text/html; charset=utf-8
Das ist genauso wie bei Webservern. Gute Mailprogramme bieten - genauso wie gute bzw. erweiterte Browser - die Möglichkeit, diese Header anzuzeigen.
2. Durch doppelten Zeilenumbruch getrennten Mail-Body.
Das ist das, was das empfangende Mailprogramm anzeigt und analog bei Browsern auch das, was diese normalerweise nur anzeigen.
Fehlt in der E-Mail diese Header-Angabe, dass es sich um text/html handelt, dann wird das Mailprogramm den HTML-Code auch nicht umsetzen, sondern nur den Quellcode als Text anzeigen.
Wie kommen diese Header nun zustande?
Sie werden nicht einfach in den Inhalt einer Mail bzw. analog einer HTML-Seite geschrieben, sondern vor dem Inhalt eingefügt. Im Falle einer Mail, die z.B. mit Thunderbird geschrieben wird, eben von diesem Programm (sofern der Benutzer ein Häkchen in den Konteneinstellungen bei "Nachrichten im HTML-Format verfassen" gesetzt hat) oder wenn die Mail z.B. von einem PHP-Programm verschickt wird, über einen Zusatzparameter für "additional headers" im mail()-Aufruf.
Nehmen wir nun einen Webserver. Hier gibt es anstatt Häkchen für das Senden des Content-Types Konfigurationsdateien. Über diese kann man den Server so einstellen, dass er _vor_ der Auslieferung von Dateien, deren Namen mit ".html" enden, die Zeichenfolge
Content-Type: text/html
übermittelt. Vorher oder nachher wird er noch weitere Header-Informationen senden, dann einen doppelten Zeilenumbruch als Kennzeichnung des Endes der Headerzeilen und _dann_ erst die Daten der *.html-Datei.
Es ist also nichts _in_ der HTML-Datei, was den Server zum Senden des Content-Type veranlasst, sondern schlicht die Namensendung der Datei.
Hat man nun eine *.html-Datei lokal auf seinem Windows-Rechner und doppelklickt sie im Datei-Explorer, passiert im Prinzip das gleiche. Windows ist so vorkonfiguriert, dass es *.html-Dateien als Typ HTML erkennt und den hiermit verknüpften Standardbrowser aufruft. Der Browser kann die Datei dann ebenfalls anhand der Namenserweiterung als HTML einstufen oder auch den Inhalt analysieren.
freundliche Grüße
Ingo