2011-04-01 23 views
1

私は非常に簡単なPHPテンプレートを使って、1つのindex.phpに保存し、GET経由でファイルを取り出して、http://mydomain.com/index.php?page=newsというファイルにアクセスすると、news.phpというファイルにアクセスします。以下のコードスニペットを参照してください。既存のWebページ用のPHPテンプレートエンジン

<? 
     $fileend = ".php"; 
     $file="{$_GET["page"]}$fileend"; 
     $news="news.php"; 
     if(file_exists($file)) 
      include($file); 
     else 
      include($news); 
    ?> 

ここでは、ページごとに異なるタグを使用できるテンプレートエンジンを使用したいと思いますが、ファイルシステムを変更したくありません。今すぐ私のPHPファイルは次のようになります:

<h1>Page Title</h1> 
<p>Page Content</p> 

ファイルは私のindex.phpに含まれているので、私はヘッダを使いません。

私はTinyButStrongと他のエンジンを見てきました。しかし、私はどのように進めるべきかわかりません。それは非常に簡単にする必要があります。私のファイル構造を大きく変えたくないときに、どうすればいいのか教えてください。

+0

現在のアプリケーションにはファイルの脆弱性がありますのでご注意ください。 http://en.wikipedia.org/wiki/Remote_file_inclusion – Leon

答えて

1

smartyテンプレートエンジンをお試しください。使いやすく、専用のテンプレートフォルダを使用できます。

+0

あなたの答えをありがとう。私は賢明だと知っていますが、それが最善の解決策であるかどうかはわかりません。私のファイル構造はかなり簡単です。メインフォルダとサブディレクトリにファイルがあります。ファイルがサブディレクトリ2011にある場合は、url index.php?page = 2011/page1と入力するだけでファイルにアクセスしたいと思います。すべてのページに.tplファイルを作成したくないのに、別のファイルを作成したいヘッダーのタイトルタグ。 – theproximityeffect

+0

スマートでもhtmlファイルを使用でき、$ smarty-> display($ _ GET ['yourTemplateFile']);を使用できます。 もちろん、より良いエンジンが存在する可能性があります。 – strauberry

0

Zend_LayoutZend_Viewを試してみるとよいでしょう.-あなたのファイル構造がわからないので、たくさんの変更が必要かどうかわかりません。このために、Zend FrameworkのMVC部分を使う必要はありません。これらの2つのクラスを使用する場合に最も大きなプラスは、テンプレートが単なるPHPファイルであることです。あなたはZend_Layoutを使う必要はありませんが、レイアウトを使って作業するときは、作業が楽になります。

+0

だから、私はすべてのシングファイルのテンプレートが必要ですか、それとも1つのメインテンプレート(index.php)で他のすべてのファイルが含まれていますか? – theproximityeffect

+0

index.phpをどのテンプレート(個々のファイル)に含めるかを決定するエントリポイントにすることができます。 1ファイルにすべてを詰め込んではいけないので、メンテナンスは生きた地獄になります。 – Htbaa

0

別のテンプレートエンジンは、Separate(http://separate.esud.info/参照)です。ファイルを含めることが可能です

<!-- INCLUDE filename --> 
関連する問題