私はこのパターンを使用します:
'/({for) (\d+) (times})([\w+\d+{}]{0,})({endfor})/i'
変換する
{for 3 times}App2{endfor}
の
App2 App2 App2
ただし、これは次の場合には機能しません。
{for 7 times}
App2
{endfor}
これは私の非常に小さなテンプレート エンジンの一部です。
それはただの楽しみのためです
$mactos = Array(
'/({for) (\d+) (times})([\w+\d+{}]{0,})({endfor})/i' => '<?php for($i=0;$i<${2};$i++) : ?> ${4} <?php endfor; ?' . '>',
'/({{)(\w+)(}})/i' => '<?php echo $${2}; ?' . '>'
);
$php = file_get_contents('teamplate.php');
foreach ($this->getPatternAndReplacement() as $pattern => $replacement) {
$php = preg_replace($pattern, $replacement, $php);
}
私はそれを読んだ (...)
'/({for) (\d+) (times})(...)({endfor})/i'
動作しません =(。