|
|
|
| Вот стоит задача запускать код хранящийся в базе, но есть одно "но" код может быть вместе с html , на форуме нашел почти то что нужно, результат выполнения кода всегда вверху (сначала) а нужно в том порядке как представленно в примере
пример
$topcontent - это то что отдает база данных и вне хранится вот это
Всякий HTML далее должен быть результат выполнения скрипта <?php calendar(); ?> и еще текст и html
|
функция обработка
<?php
function contents($topcontent)
{
function execute_php($matches)
{
// как обычно: $matches[0] - полное вхождение шаблона
// $matches[1] - вхождение первой подмаски,
// заключенной в круглые скобки, и так далее...
return eval($matches[1]);
}
echo preg_replace_callback("|<\?php([^?]+)\?>|i", "execute_php", $topcontent);
}
?>
|
Использовал и читал темы
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=13241&page=1
http://softtime.ru/forum/read.php?id_forum=1&id_theme=6177 | |
|
|
|
|
|
|
|
для: zavragnov
(28.11.2007 в 13:54)
| | проще наверное так
<?php
function
calendar()
{
return '<h1 style="border-bottom: grey solid 15px">календарь</h1>';
}
function
execute_php(&$matches, $key)
{
if ($key % 2) $matches = eval($matches);
else echo $matches;
}
$txt = '<?php echo calendar(); ?> и еще текст и html<hr>
<?php
function clock()
{
return \'<h1 style="border-bottom: black solid 15px">часы</h1>\';
}
?> <br>ещё html
<?
echo clock();
?>';
array_walk(preg_split('/<\?(php)?|\?>/s', $txt), 'execute_php');
?>
| но тоже несработает если в $txt будет <? $var="?><?php"; ?> | |
|
|
|