- ベストアンサー
テンプレートを実現するために
テンプレートはtemp.htmlというファイルに用意してまります。これをPHPでfile()で読み込み、 一行ずつforeachで出力していくという感じです。 $nameのところは、PHPの中で定義されている$nameとして出力したいと思っているのですが、そのまま「$name」と出力してしまいます。 この辺りはどうすれば解決できますでしょうか? ($nameや$time等複数あります)
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
未検証ですが、下記コードはいかがでしょうか? $lines = file('temp.html'); foreach($lines as $val){ echo str_replace(array('$name', '$time'), array($name, $time), $val); } # 個人的には、file_get_contents で読み込んだ後に、str_replace の方がスマートだと思います。
その他の回答 (2)
- fire--
- ベストアンサー率49% (146/293)
<?php $a = "ALPHA"; print <<<END === {$a} === END; ?> というように、print文の中の{$...}というような変数を置き換えることは できますので、テンプレートをhtmlでなくphpとして作成し、本体の前で 変数を読み込むとかすれば置換えられます。 違った方法として、smartyというテンプレートエンジンを使う方法も あります。以下に日本語マニュアルがあります。 http://sunset.freespace.jp/Smarty/ 非常に限られた利用ならともかく、ある程度の規模があるのなら 自前で処理するよりsmartyを使うほうが良いと思います。
- hrm_mmm
- ベストアンサー率63% (292/459)
$str = file(); で読み込んだものは文字列なので、変数データに置き換えるには、replace()などを使う必要があるでしょう。