今回は前回のHTMLとPHPを分離したままの形で簡単な動的ページを作成します。
出力する内容は、現在の時間です。
まず、下記のHTMLファイル(today.tpl)を用意します。
<html> <head> <title>Hello</title> </head> <body> このページの表示時間は{now_date}です。 </head> </html>
そして、PHPファイルは
<?php $tmp = file_get_contents( 'today.tpl' ); $tmp = str_replace( '{now_date}', date('Y年m月d日 H時i分s秒'), $tmp ); echo $tmp; ?>
です。
str_replace関数は、第一引数の文字を、第二2引数の文字に置き換えてくれます。詳しい仕様はこちら
date関数は、今の時間を第一引数のフォーマットどおりに出力してくます。詳しい仕様はこちら
と、まぁ。こんな感じで、動的な部分に関しては置換処理(文字を置き換える処理)にて出力する方法が一般的です。
ですが、仕事では置換処理を一つづつ書くことはほとんどありません。
なぜなら、テンプレートエンジンというプログラムライブラリが存在し、置換処理はこのテンプレートエンジンにお任せするからです。
私が仕事で使っているテンプレートエンジンはSmarty(スマーティー)です。
Smartyには、単に置換するだけでなく、テンプレートファイルをインポートしたり、条件分岐処理、ループ処理などの機能があり、非常に便利です。
というわけで、今回紹介した処理は非常に簡素なテンプレートエンジンともえるでしょう。
次回はSmartyを使ってより複雑な動的出力をやってみたいと思います。