PHP einfügen und auf die Schaltfläche klicken: formatiert wird in diesem Browser, nichts wird gesendet und kein Code ausgeführt.
Läuft lokal in deinem BrowserSchnipsel oder ganze Datei einfügen und auf PHP-Code formatieren klicken. Die Einrückung wird im Browser mit einem Tab pro Ebene neu geschrieben; der Code wird nie ausgeführt, es entsteht keine Ausgabe und es wird nichts hochgeladen.
Das Ergebnis behält die Abschnitte, die wörtliche Ausgabe sind und kein Code: den Rumpf eines Heredoc oder Nowdoc, einen Kommentar mit # oder //, und das HTML zwischen einem schließenden ?> und dem nächsten öffnenden Tag. Diese Bereiche kommen Byte für Byte zurück, was für ein Template entscheidend ist, weil eine zusätzliche Einrückung dort die gerenderte Seite verändert.
Jede Anweisung, die in einer Zeile stand, wird am Semikolon getrennt, geschweifte Klammern rücken in eine eigene Zeile und jede Verschachtelungsebene bekommt einen Tab mehr. Aus einer minifizierten Klasse wird so lesbarer Code, und dafür stimmt die Ausgabe nicht mehr Zeile für Zeile mit der Eingabe überein: Leerzeilen entfallen, eingerückt wird immer mit Tabs, und ein langes Array oder eine lange Argumentliste bleibt in einer Zeile statt umbrochen zu werden. Ein Projekt mit vier Leerzeichen braucht danach einen Durchlauf mit seinem eigenen Formatierer.
Der Rumpf eines Heredoc oder Nowdoc ist wörtliche Ausgabe und wird deshalb Byte für Byte kopiert, einschließlich der seit PHP 7.3 erlaubten eingerückten Schlusskennung. Zeilenkommentare mit # oder // gelten als Kommentar und nicht als Klammer, was bei einem Block wie # siehe die Syntax {placeholder} zählt, und ein PHP-8-Attribut wie #[Route('/x')] bleibt Code, weil ein Attribut keinen Kommentar öffnet. Text zwischen ?> und dem nächsten <?php gehört zu HTML und wird nie eingerückt, sodass eine Template-Schleife foreach (...): mit innerem <?= ... ?> mit unverändertem Markup zurückkommt.
Der Formatierer liest Zeichen, keinen Syntaxbaum: er führt den Code nie aus, prüft die Syntax nicht, und eine offene Klammer oder ein fehlendes Anführungszeichen kommt so zurück, wie es geschrieben wurde, statt als Fehlermeldung. Die Einfärbung läuft nach dem Layout und wird ab etwa 120 KB übersprungen, damit die Seite reagiert; eine große Datei bleibt dadurch lesbar, aber einfarbig. Für mehr als eine schnelle Aufräumarbeit behalten php-cs-fixer, PHP_CodeSniffer oder der Formatierer der Entwicklungsumgebung Stil und Leerzeilen eines echten Projekts bei und lassen sich auf den ganzen Baum anwenden statt auf eine Einfügung.