webew
Войти » Регистрация
 
PHP

Хранение php-кода в базе MySQL

26 августа 2009, 7:13
Автор: olga.cherko
Добрый день!

Подскажите, пожалуйста, как сделать так, чтобы php-код хранился в базе MySQL,
чтобы если потребуется что-то исправить не нужен был ftp-доступ (как
выяснилось, не везде он есть).
Добавить комментарий

1234ru

Это довольно просто. Существует функция eval(), которая принимает в качестве аргумента строку и интерпретирует её как php-код.

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

Для хранения кода нужно сделать таблицу.
CREATE TABLE code (
codename VARCHAR(255),
codetext TEXT,
UNIQUE KEY (codename)
);


Далее. Допустим, Вам нужно достать из базы и выполнить часть кода под названием 'mainmenu'. Выглядеть это может так:

// соединяемся с БД ..
$code_name = 'mainmenu';
$sql = "SELECT codetext FROM code WHERE codename = '$code_name'";
$result = mysql_query($sql) OR die(mysql_error());
$row = mysql_fetch_row($result);
if (!empty($row)) {
    $code = $row[0]; // достали код;
    eval($code); // теперь выполняем
}
// если $row пуст - значит найти в БД код с таким названием не удалось
else echo "Нет кода под названием '$code_name'.";


Обратите внимание, что части кода не должны заключаться в скобки <?php ... ?>, иначе будет ошибка.
То, что не убивает нас, делает нас инвалидами.
27.08.2009, 10:16
Ответить
NO USERPIC

olga.cherko

Спасибо, действительно все просто:)
29.08.2009, 17:46
Ответить
© 2008—2017 webew.ru, связаться: x собака webew.ru
Сайт использует Flede и соответствует стандартам WAI-WCAG 1.0 на уровне A.
Rambler's Top100