PHPでウェブの世界と繋がろう!
menu
ホーム > PHPテクニック > PHPで簡単なテンプレートエンジンを作る!

PHPで簡単なテンプレートエンジンを作る!

Pocket

PHPで簡単なテンプレートエンジンを作る!

シンプルなテンプレートエンジン
有名なテンプレートエンジンに smarty がありますが、今回は自分で簡単なテンプレートエンジンを作ってみましょう。テンプレートエンジンを使用することで、表示部分のファイルを切り分けることが出来ます。

テンプレートファイル
まず最初に、テンプレート用ファイルの tpl.html を作成します。ソースコードは以下になります。ファイルを作成したら任意のディレクトリに保存してください。
tpl.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>PHPで簡単なテンプレートエンジンを作る!</title>
</head>
<body>
テンプレート変数の値1:_%string1%_<br/>
テンプレート変数の値2:_%string2%_<br/>
</body>
</html>
テンプレートエンジン
次に、テンプレートエンジンとなる関数を作ります。ファイル名を function.php としてください。ソースコードは以下になります。ファイルを作成したら tpl.html と同じディレクトリに保存してください。
function.php

<?php
//テンプレート表示用の関数
function display_template($tplFile, $param) {

	### テンプレートファイルを読み込み
	$html = file_get_contents($tplFile);

	### テンプレートファイルの内容を置換
	//テンプレートのブレース _%・・・%_
	// .*は全ての文字を意味する .は任意の1字で*は0個以上
	//パターン修飾子eは大文字小文字区別なし指定
	$pattern = '/_%(.*)%_/e';

	//置換内容の指定
	//$n 形式 参照を指定することができます。
	//詳細 http://php.net/manual/ja/function.preg-replace.php
	$replacement = '$param&#91;\'$1\'&#93;';

	//置換実行
	$html = preg_replace($pattern, $replacement, $html);

	### リターン処理
	return $html;

}
?>
アクセスするファイル
最後に、直接アクセスするページを作成します。ファイル名を index.php としてください。ソースコードは以下になります。ファイルを作成したら、 tpl.html と同じディレクトリに保存してください。

index.php

<?php
### インクルード
require 'function.php';

### テンプレートで使用する配列データの作成
$param&#91;'string1'&#93; = 'PHPで簡単なテンプレートを作る!';
$param&#91;'string2'&#93; = 'テンプレートを表示しました。';

### テンプレートエンジン実行&テンプレートの表示
echo display_template('tpl.html', $param);
?>

これでファイル作成は完了です。index.php へ Webブラウザからアクセスすると、テンプレートファイルの内容が表示されると思います。その際、テンプレートの ブレース _%・・・%_ 部分が、テンプレートエンジンによって配列の値に置換されているはずです。

実行結果
テンプレート変数の値1:PHPで簡単なテンプレートを作る!
テンプレート変数の値2:テンプレートを表示しました。

タグ(=記事関連ワード)

日付

投稿日:2014年2月13日
最終更新日:2014年02月14日

関連記事

配列関数サンプル

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

http://www.tryphp.net/phpref-tech_phptemplate/trackback/