2009-08-28 17 views
0

私は1つのテンプレートファイルを持っています。これはメインファイルに含まれています。別のファイルからPHPを実行

some.template:私は1つの変数にファイルとそれを表示する読みメインファイル内

... 
<?php echo '!'; ?> 
... 

。もちろん、PHPスクリプトはそこで実行されません。どうすればいいのですか?

おかげ

+0

あなたは何を修正しなければなりませんか?私たちのためにそれらを表示し、あなたが変更したり評価したりする必要のないテンプレートを書く方法があるかもしれません(これは非常に危険です)。 –

答えて

4

を行い、変数にファイルを読みません。あなたは、プロセスを掲示する必要がある場合、結果は(私はあなたが変数にテンプレートを読み込むためにのためにそれが理由かもしれないと仮定)output bufferingを試してみてください。

ob_start(); 
include 'some.template'; 
$out = ob_get_clean(); 
echo $out; 

あなたがPHPプロセスを持つ前に、テンプレートを変更する必要がある場合それはevalに頼らざるを得なくなります。しかし、明らかにセキュリティ上の理由から、あまり明白ではないパフォーマンス上の理由から、非常にであることをお勧めします。置換する変数がほんの少しだけ必要な場合は、代わりにテンプレートエンジンを使用するか、preg_replaceのような簡単な手段を使用することを検討してください。

0

ではなく、あなたがファイルを読み込んで処理するincludeを使用することができ

include 'some.template'; 
+0

挿入する前にテンプレートを編集する必要があります。インクルードは間違った方法です。 – Ockonal

+1

テンプレートでPHPコードを書き直していますか? 本当にデザインを考え直すべきです。あなたが達成したいことが何であるかについてもっと詳細を述べることができれば、誰かがおそらくより良い解決策を提供することができます。 –

0

あなたがそれを使用する前に、スクリプトを編集したいので、このpractiallyを行うための唯一の方法で使用することです:

eval($string); 

私は私がこれを行うにはないあなたを伝える必要はありません確信していますあなたがセキュリティを大切にしているならば、ユーザー入力。

+0

私はあなたに、安全ではないことを伝える必要があると確信しています。 –

関連する問題