【PHP】ヒアドキュメントでなぜか文字化けする

参考

Nowdoc はヒアドキュメントと似ていますが、 ヒアドキュメントがダブルクォートで囲んだ文字列として扱われるのに対して、 Nowdoc はシングルクォートで囲んだ文字列として扱われます。 Nowdoc の使用方法はヒアドキュメントとほぼ同じですが、 その中身について パース処理を行いません。 PHP のコードや大量のテキストを埋め込む際に、 エスケープが不要になるので便利です。この機能は、SGML の PHP: 文字列 - Manual

PHP5.3以降から上記のような機能があるそうです。

変数など展開させない

//ヒアドキュメント
$js =<<< EOM
<省略>
EOM;

//Nowdoc
$js =<<< 'EOM'
<省略>
EOM;

後半のような書き方にすると、記述したまま出力されます。ヒアドキュメントで変数と解釈されて、意図しない展開をされて文字化けするなどの場合は、これで解決できます。

スポンサーリンク

関連記事