動的なページの作成

今回は前回の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を使ってより複雑な動的出力をやってみたいと思います。