Der Martin: PHP in HTML

Beitrag lesen

Hallo,

wundere mich eigentlich nur warum der html code trotzdem von Browsern ohne entsprechende Einleitung erkannt wird.

warum sollte er nicht, wenn der entsprechende Content-Type (text/html) gesendet wird?

Sei dir bitte darüber im Klaren, dass PHP auch keine Magie ins Spiel bringt - jedenfalls nicht hier. Es ist eine Scriptsprache, die eine Eingabedatei verarbeitet und dabei eine Ausgabe an stdout erzeugt, die der Webserver an den Client sendet. Vom Client aus ist dieser Mechanismus nicht vom Abfragen einer statischen HTML-Datei unterscheidbar.

Macht für mich irgendwie keinen Sinn wenn man einem .html dokument sagen muss was php oder js code ist aber in einem .php Dokument nicht sagen muss was html code ist.

PHP kennt zwei Modi beim Parsen eines Dokuments: (A) den Inhalt der Scriptdatei einfach nur durchreichen, und (B) den Inhalt der Scriptdatei interpretieren und die Ausgabe weiterreichen. Es ist nun mal festgelegt, dass PHP am Scriptanfang immer in Modus (A) beginnt. Was immer im Script steht, wird also 1:1 durchgereicht. Ob das HTML, JS, CSS, XML, JSON oder sogar eine reine Binärwurst ist (z.B. Bilddaten), kümmert den PHP-Interpreter nicht. Wichtig ist an der Stelle, dass der zum Inhalt passende Content-Type gesendet wird, und der ist bei PHP im Web-Umfeld normalerweise auf text/html voreingestellt, weil das wohl der häufigste Fall ist.

So long,
 Martin