電子書籍の厳選無料作品が豊富!

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

この辺りはどうすれば解決できますでしょうか?
($nameや$time等複数あります)

A 回答 (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-replac …
    • good
    • 0

<?php


$a = "ALPHA";
print <<<END
=== {$a} ===
END;
?>

というように、print文の中の{$...}というような変数を置き換えることは
できますので、テンプレートをhtmlでなくphpとして作成し、本体の前で
変数を読み込むとかすれば置換えられます。

違った方法として、smartyというテンプレートエンジンを使う方法も
あります。以下に日本語マニュアルがあります。
http://sunset.freespace.jp/Smarty/

非常に限られた利用ならともかく、ある程度の規模があるのなら
自前で処理するよりsmartyを使うほうが良いと思います。
    • good
    • 0

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

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!