ヒアドキュメントでHTML分を出力する [PHP]

2021-07-07

複数行あるHTMLタグをヒアドキュメントを使って出力する

phpでHTML分を出力する場合、ヒアドキュメントを使うと便利です。
下記が簡単なサンプルです

<?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タグとして扱われます。また、改行やタブをそのまま扱われます。

ヒアドキュメントを扱う場合にエラーになるケース

ヒアドキュメントを使う場合にエラーになるケースがあります。

EOD ;
 
echo $html;

上記のように、「EOD」と「;」の間にスペースが有る場合は、以下のようなエラーになります

PHP Parse error: syntax error, unexpected end of file in /var/www/html/test.php on line 21

また、「EOD;」の前にタグを入れた場合も同じようなエラーになります

        EOD ;

echo $html;
PHP Parse error: syntax error, unexpected end of file in /var/www/html/test.php on line 21

 

上記のエラーの場合は、以下のような原因でエラーとなっています

  • 「EOD」と「;」の間には、空白、タブ、制御コードを入れてはいけない
  • 「EOD;」の前にはタブやスペースなどでインデントを入れてはいけない