ヒアドキュメントでHTML分を出力する [PHP]
複数行あるHTMLタグをヒアドキュメントを使って出力する
phpでHTML分を出力する場合、ヒアドキュメントを使うと便利です。
下記が簡単なサンプルです
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<?php $html = <<<EOD <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Test Page</title> </head> <body> <h1>Test Page</h1> <p>ヒアドキュメントで、<br> テキスト出力するサンプル</p> </body> </html> EOD; echo $html; ?> |
ブラウザでアクセスすると以下のような感じで出力されます
「EOD」で囲まれた部分がHTMLタグとして扱われます。また、改行やタブをそのまま扱われます。
ヒアドキュメントを扱う場合にエラーになるケース
ヒアドキュメントを使う場合にエラーになるケースがあります。
1 2 3 |
EOD ; echo $html; |
上記のように、「EOD」と「;」の間にスペースが有る場合は、以下のようなエラーになります
1 |
PHP Parse error: syntax error, unexpected end of file in /var/www/html/test.php on line 21 |
また、「EOD;」の前にタグを入れた場合も同じようなエラーになります
1 2 3 |
EOD ; echo $html; |
1 |
PHP Parse error: syntax error, unexpected end of file in /var/www/html/test.php on line 21 |
上記のエラーの場合は、以下のような原因でエラーとなっています
- 「EOD」と「;」の間には、空白、タブ、制御コードを入れてはいけない
- 「EOD;」の前にはタブやスペースなどでインデントを入れてはいけない
ディスカッション
コメント一覧
まだ、コメントがありません