У меня есть код PHP + HTML в виде строки, содержащей функции. Я хочу, чтобы некоторые вызовы функций были заменены включенным контентом. Объединить несколько файлов в один.
Краткий пример – до
<html>
<?php myclass->my_function('one', 'two', 'three'); ?>
<h1>Content in between</h1>
<?php myclass->my_function('1', '2'); ?>
</html>
Краткий пример — Замена контента
<html>
<?php run('one', 'two', 'three'); /* Run does include a file */ ?>
<h1>Content in between</h1>
<?php run('1', '2'); /* Run does include a file */ ?>
</html>`
Короткий пример – после
<html>
<?php
/* Start my_function */
echo 'This is the result of my_function one two three';
/* End my_function
?>
<h1>Content in between</h1>
<?php
/* Start my_function */
<?php myclass->my_function('four', 'five', 'six'); ?>
/* End my_function
?>
</html>
Обратите внимание, что myclass находится во включенном содержимом. Результат должен быть снова проанализирован.
Короткий пример — После этого
Все это снова анализируется и заменяет myclass включенным контентом.
<html>
<?php
/* Start my_function */
echo 'This is the result of my_function one two three';
/* End my_function */
?>
<h1>Content in between</h1>
<?php
/* Start my_function */
echo 'four five six';
/* End my_function */
?>
</html>
Я пытался сделать это с помощью взрыва, но получилось сложно. Два шага «Замена содержимого» и «После», возможно, потребуется выполнить за один шаг.
Посмотрите на это как на строку. Может ли preg_replace решить эту проблему? Как?
myclass->my_function()
сначала становитсяrun()
, аecho '..'
во второй части. - person mario   schedule 18.01.2011eval()
php.net/manual/en/function.eval.php а> - person Jake N   schedule 18.01.2011