PHP を貼り付けてボタンを押すだけです。整形はこのブラウザー内で実行され、どこにも送信されず、コードの実行も行いません。
ブラウザ内でローカルに実行スニペットでもファイル全体でも貼り付けて「PHP コード整形」を押します。インデントはブラウザー内で 1 レベルにつきタブ 1 つに書き換えられ、コードが実行されることも、出力が生成されることも、どこかへ送信されることもありません。
結果では、コードではなく文字列として扱うべき部分がそのまま残ります。ヒアドキュメント/ナウドックの本文、# や // のコメント、閉じ ?> と次の開始タグの間の HTML です。これらはバイト単位で戻るため、テンプレートでは重要です。そこに入った余分なインデントは表示結果を変えてしまうからです。
1 行に書かれた文はセミコロンで分割され、波括弧は独立した行に移り、入れ子 1 段ごとにタブが 1 つ増えます。圧縮されたクラスが読みやすくなる一方で、出力は入力と行単位では一致しなくなります。空行は削除され、インデントは常にタブ、長い配列や引数リストは折り返さず 1 行のままです。4 スペースで書くプロジェクトは、貼り付けたあとにそのプロジェクトのフォーマッターを通す必要があります。
ヒアドキュメントとナウドックの本文は文字列出力なので、PHP 7.3 以降で使えるインデント付きの終了マーカーも含めてバイト単位でコピーされます。# や // で始まる行コメントはコメントとして扱われ、波括弧としては解釈されません(# 波括弧を {x} で説明する、といった記述で重要です)。PHP 8 の属性 #[Route('/x')] はコメントを開かないため、コードとして扱われます。?> と次の <?php の間のテキストは HTML に属し、インデントし直されません。foreach (...): の中に <?= ... ?> があるテンプレートのループも、マークアップを保ったまま戻ります。
構文木ではなく文字を読むツールなので、コードを実行せず、構文も検証しません。閉じ忘れた波括弧や引用符はエラーではなく、書いたままの形で戻ります。色分けは整形の後に実行され、およそ 120 KB を超えるとページの応答性を保つために省略されるため、大きなファイルは色なしで表示されます。ちょっとした整理以上の用途では、php-cs-fixer、PHP_CodeSniffer、エディター内蔵のフォーマッターがプロジェクトのスタイルと空行を保ったまま、貼り付けた一部ではなくツリー全体に適用できます。