PHP で HTML を出力する方法についてまとめています。
静的な部分(HTML)と動的に生成する部分(PHP)の書き分けを理解することによって、
Webデザインとプログラミングの分業がしやすくなります。
ブラウザ(クライアント)への送信
PHP の組込み関数である echo や print で出力された内容は、ブラウザへと送信されます。
また、直接 HTML で記述された内容も同様に、ブラウザへ送信されます。
どちらの方法で出力された文字列も、ブラウザから見ると同じに見えるため、
「ソース表示」をしても区別できません。
すべてを直接 HTML で記述
1 2 3 4 5 |
<html> <head><title>HTMLを出力</title></head> <body>PHPを学習中</body> </html> |
すべての HTML を PHP コードで出力
1 2 3 4 5 6 7 |
<?php echo "<html>\n"; echo "<head><title>HTMLを出力</title></head>\n"; echo "<body>PHPを学習中</body>\n"; echo "</html>\n"; ?> |
静的な部分を直接 HTML で記述・動的な部分を PHP で記述
1 2 3 4 5 6 7 8 9 |
<html> <head><title>HTMLを出力</title></head> <body> <?php echo "PHPを学習中"; ?> </body> </html> |
ヒアドキュメント
長い文や、まとまったブロックの HTML,タグを出力したい場合、
先のように1行ずつ echo や print を呼出すと、コードが読みづらいし記述が面倒です。
ヒアドキュメントを使うことによって大量の文字列を出力することができます。
ヒアドキュメントの構文
echo <<< 終端文字列
ここに出力したい文字列を記述
終端文字列;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<html> <head><title>HTMLを出力</title></head> <body> <?php $type = "ヒアドキュメント"; echo "<table>"; echo "<tr><td>"; echo "<b>ここは「{$type}」を使わない PHP コード</b>"; echo "</td></tr>"; echo "</table>"; echo <<<EOT <table> <tr><td> <b>ここは「{$type}」を使った PHP コード</b> </td></tr> </table> EOT; ?> </body> </html> |
終端文字列となる文字列は、EOT(End Of Text)でなくても問題ありません。
ただし、最後の終了文字列と対になっている必要があります。
また、ヒアドキュメントの内部では、PHP の変数を使用することができます。
ポイント
ヒアドキュメント内の変数を中カッコ { } で囲むことで、変数展開に失敗しにくくなります。