phpのシングルクォートで囲まれた'nowdoc'を"heredoc"に変換します。
'nowdoc'の中にphpの変数'$message'などを記載しても変数の中身は展開されませんが、"heredoc"に変換する事で変数の中身を展開する事が可能になります。
"heredoc"への変換には、phpのeval()関数を利用しています。evel()関数はphpのコードを実行可能なためphpのマニュアルではおすすめされていません。 利用する際には絶対にユーザーから受け取ったデータを渡さないように十分に注意してください。
<?php // メッセージ $message = '変数の中身が変換できました。( ^_^ )/'; // 'nowdoc' <- (変換対象) $nowdoc = <<< 'EOD' {$message} EOD; // 変換前の'nowdoc'を表示 echo "変換前:".$nowdoc."<br/>"; // heredocに変換 eval( "¥$heredoc = ¥"$nowdoc¥";" ); // 変換結果の表示 echo "変換後:".$heredoc."<br/>"; ?>
変換前:{$message}
変換後:変数の中身が変換できました。( ^_^ )/