2008年1月19日土曜日

 

【PHP】テンプレートファイルのSSI処理を置き換えるプログラム※追記

PHPからHTMLテンプレートを読み込んで表示する仕組み。テンプレートの共通部分をSSIで表示。
SSIが処理されないらしいので。

//テンプレートファイル  tpl.html
<html>
  <body>
    <!--#include virtual="file.txt" -->
  <body>
</html>

とかテンプレート側に書いたら、PHPでファイルを読み込んで置換する。
※追記
複数のマッチングに対応できてなかったので修正。


$tpl = "tpl.html";
preg_match_all("/(<!--#include virtual=\")([a-z0-9\_\.\/^\"]+)(\" -->)/i",
                           $tpl,$array,PREG_SET_ORDER);

chdir("templates");
  //カレントディレクトリ移動
foreach ($array as $match) {
  $tpl=ereg_replace("(<!--#include virtual=\"".$match[2]."\" -->)",
                                 file_get_contents($match[2]),$tpl); 
   //テンプレートファイルからの相対パスで記述
}
chdir("../");
  //カレントディレクトリ移動

もっとスマートな方法は無いもんか。
SSIが普通に使えればいいんだけどな。

ラベル: ,


コメント: コメントを投稿

登録 コメントの投稿 [Atom]



この投稿へのリンク:

リンクを作成



<< ホーム

This page is powered by Blogger. Isn't yours?

登録 投稿 [Atom]

Google