Как сделать собственный простой, быстрый и безопасный шаблон PHP без eval ()? - PullRequest
0 голосов
/ 08 июля 2011

Как создать собственный простой, быстрый и безопасный шаблон PHP MySQL без eval() для записи MySQL:

+--------------------------------------------------------------+
|  id | content                                                |
|--------------------------------------------------------------|
|  12 | Today is {date}<br />Current time {include 'time.php'} |
+--------------------------------------------------------------+

{date} должен вернуть echo date('l');, а содержимое time.php равно <?php echo date('h:i A'); ?>

Ожидаемый результат будет:

Сегодня четверг
Текущее время 23:17

Ответы [ 2 ]

0 голосов
/ 20 июля 2011

Это возможно через preg_replace.Пример для include:

function finclude($file){
    return include($file);
}

$str = "Today is {include 'date.php'}.";
echo preg_replace("/\{include '(.*)\'}/e", 'finclude("$1")', $str);

date.php:

<?php return date('jS \of F'); ?>, 2011

вернет: Today is 20th of July.

Кто-нибудь знает какой-нибудь лучший способ (безопасный, скоростьпроизводительность), чтобы сделать это без /e eval?

0 голосов
/ 08 июля 2011

Вы можете искать свой текст с помощью регулярного выражения, вы также можете использовать методы замены, чтобы получить желаемый эффект.

Чтобы создать сложный шаблонизатор, я бы сослался на веточку или Smarty (или другое) и посмотрел, какони делают это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...