• ベストアンサー

テンプレートを実現するために

テンプレートはtemp.htmlというファイルに用意してまります。これをPHPでfile()で読み込み、 一行ずつforeachで出力していくという感じです。 $nameのところは、PHPの中で定義されている$nameとして出力したいと思っているのですが、そのまま「$name」と出力してしまいます。 この辺りはどうすれば解決できますでしょうか? ($nameや$time等複数あります)

質問者が選んだベストアンサー

  • ベストアンサー
  • aqucent
  • ベストアンサー率39% (78/200)
回答No.3

未検証ですが、下記コードはいかがでしょうか? $lines = file('temp.html'); foreach($lines as $val){ echo str_replace(array('$name', '$time'), array($name, $time), $val); } # 個人的には、file_get_contents で読み込んだ後に、str_replace の方がスマートだと思います。

参考URL:
http://jp2.php.net/manual/ja/function.str-replace.php

その他の回答 (2)

  • fire--
  • ベストアンサー率49% (146/293)
回答No.2

<?php $a = "ALPHA"; print <<<END === {$a} === END; ?> というように、print文の中の{$...}というような変数を置き換えることは できますので、テンプレートをhtmlでなくphpとして作成し、本体の前で 変数を読み込むとかすれば置換えられます。 違った方法として、smartyというテンプレートエンジンを使う方法も あります。以下に日本語マニュアルがあります。 http://sunset.freespace.jp/Smarty/ 非常に限られた利用ならともかく、ある程度の規模があるのなら 自前で処理するよりsmartyを使うほうが良いと思います。

  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.1

$str = file(); で読み込んだものは文字列なので、変数データに置き換えるには、replace()などを使う必要があるでしょう。

関連するQ&A

専門家に質問してみよう