Hallo Ador
Das hat nichts damit zu tun, dass PHP das interpriert oder ähnliches. Das ist eine reine Clientangelegenheit.
Mit echo gibts du direkt "Sourcecode" des HTML-Dokuments aus. Da hat < nunmal eine spezielle Bedeutung. Entsprechend wird das zu einem <?php>-Tag umfunktioniert mit den properties some, text und ?. Das macht natürlich in HTML keinen Sinn, also wird auch nichts ausgegeben.
Wenn du dir den Sourcecode der Seite im Client ansiehst so wirst du da auch finden:
'Snippet zum Einbinden: <?php some text ?>'
Chrome zeigt dir direkt, dass das Schwachsinn ist und der komplett ungültige Tag wird als Kommentar aufgefasst:
<html><head></head><body>Snippet zum Einbinden: <!--?php some text ?--></body></html>
Was du machen kannst:
1. Das was du vorhin gesagt hast: Händisch alle HTML-Sonderzeichen escapen
2. Ein valides HTML-Dokument zurückgeben (besteht aus mindestens dem doctype und title)
3. echo htmlspecialchars('...'); um dir 1. zu automatisieren.
Die einzige wirklich gangbare Lösung logischerweise 2.
Viele Grüsse
Cromon