0

小さいサイズのテンプレート エンジンの場合、preg_replace を使用して置き換えようとしています。

{INCLUDE:dir/file.inc.php}

適切な PHP に相当するものを使用します。

以下を使用してみましたが、インクルード パスの / により、「0 による除算」エラーが発生します。

$template = preg_replace('~\{INCLUDE:(.*?)}~', '<?php echo $1; ?>', $template);

(preg_replace のエコーはデバッグ用であり、最終的にはインクルードされます)

インクルード パスから / を削除しても (つまり、file.inc.php だけです)、それでもすべてのドットが削除されます。

どんな助けでも大歓迎です!

4

1 に答える 1

0

私があなたを正しく理解していれば、これはうまくいくはずです

$template = preg_replace('~{INCLUDE:(.*?)}~', '<?php include \'$1\'; ?>', $template);

あなたの問題は、引用されていない $1 が原因でした。

于 2012-08-25T12:42:02.897 に答える