2009-12-13 3 views
1

У меня есть базовый cms, который хранит страницы в таблице в базе данных mysql - возможно ли, чтобы я включил PHP в страницу, а затем PHP, а не просто выводил его как есть?Обработка PHP в базе данных

ответ

1

Думаю, вам нужно будет использовать eval() для совершения такой вещи. Так что да, возможно, но не рекомендуется.

+0

Могу ли я спросить, что бы проблемы безопасности с этим? (Я единственный человек, который может добавлять контент в базу данных, и я делаю это через phpmyadmin) –

+0

Я думаю, что у вас будет больше проблем с производительностью, чем безопасность. eval() довольно дорого, так как PHP должен по существу порождать еще один интерпретатор для каждого вызова eval(). –

+0

Ах спасибо :) –

1

Как оба предложения указали, используя Eval() не рекомендуется и представляет собой серьезную проблему безопасности.

Лучше всего создать базовую систему шаблонов. У вас может быть предопределенный набор блоков кода PHP на интерфейсе, которые запускаются определенными значениями ключа на бэкэнд, т. Е. {show_categories} может быть тегом, который при анализе заменяется на все категории.

Чтобы реализовать такую ​​функциональность, вам нужно будет искать конкретные значения ключа шаблона. Если такие ключевые значения найдены, запустите связанный код с этим значением ключа и замените ключ кодом.

Очень простой пример поиска и замены ключа шаблона:

// check if the show_categories key is found 
if (strpos($body, '{show_categories}') !== false) { 
    // generate the show categories output from a PHP function 
    $categories = getCategoriesOutput(); 
    // replace key with content 
    str_replace('{show_categories}', $categories, $body); 
} 
+0

+1: Smarty или Phable будет вариантом –

Смежные вопросы