2011-07-17 13 views
2

私が達成しようとしているのは、誰もが自分のテンプレートを簡単に作成できる、シンプルで軽量なテーマエンジンを構築することです。たとえば、誰かがロゴを入力したい場合は、{logo}などを使用してください。php以外のファイルにphpタグを読み込んで実行する

テンプレートファイルの拡張子は「.inc」です..私の問題は、 PHP(<?php?>)タグを使って、ユーザーがPHPコードを実行できるようにする方法を知っています。私は両方の私のhtaccessファイルでこれを追加しようとしている

:私は他のテンプレートエンジンを知って

AddType application/x-httpd-php .inc 

は、Smartyのような存在ですが、idではなく、より多くの単純なもののために行きます。

+0

PHPを使用するよりも簡単ですか? – alex

+0

問題の解決策:Twig: – NikiC

+0

@alexを使用してください。私は本当にあなたが意味するものを得ることはありませんか? @NikiC、私は自分のテンプレートエンジンでこれを行うことができたら本当に優先します。だから私はそれがどのように機能するのか知っています。 Twigについては、phpタグと{}タグの両方を許可していますか? –

答えて

2

新しいWebサーバーハンドラーを追加する必要があるテンプレートエンジンを使用する人は、あまり多くありません。したがって

あなたが、出力バッファリングがオンになっての.incは、単にファイルを含める使用して本当に喜んでいるの.incやケースに.phpのの代わりに、のような標準完全にサポート拡張機能を使用することをお勧めだろうと

ob_start(); 
require "template.inc"; 
$content = ob_get_clean(); 

$contentので、あなたがそれでやりたいことができtemplate.incの中にあったものは何でも保持されます。このような変数に出力を収集します。

あなたのtemplate.incファイルにPHP変数が含まれているだけでなく、それらも解析されます。

+0

私は標準の.php拡張を使ってみましたが、それはうまくいきませんでした。出力バッファリングを含むファイルをシームレスに処理するなど、非常に大変ありがとうございます。私はしばらくの間、これについて私の頭を掻いてきました! –

1

htaccessのルールとは関係ありません。テンプレートタグの解釈が終了したら直ちにPHPコンテンツを評価する必要があります。例:

eval("?> $content_of_template <?php "); 
+0

...もちろん、$ content_of_templateを衛生的に扱うために大切にしています。 –

+0

@Scottそうですが、テンプレートエンジンは常に安全であるとは限りません。純粋なPHPのみを使用する多くのテンプレートエンジンがあります。 – Karolis

+0

これと一緒に行くならば、PHPの機能の大部分が悪意のあるものとして使用される可能性があるので、その機能の多くを除外してください。すべてのPHPテンプレートがサイトに許可される前に、それを承認する/却下する方が良いかもしれません。 – Scott

関連する問題