Вызов переменных PHP из базы данных MySQL - PullRequest
0 голосов
/ 27 июня 2009

В настоящее время я нахожусь в процессе работы над системой CMS, которая создает сайт прямо из информации, сохраненной в базе данных MySQL.

Вот проблема, с которой я столкнулся:

  • Внутри CMS пользователь вводит код для шаблона
  • интерфейс сайта (frontend.php) вызывает переменную, в которой хранится макет ($ template_header)
  • Интерфейс также создает переменную $ menu_code, извлекая код меню из базы данных, которая также сохранялась через CMS
  • Внутри кода шаблона должен быть разрыв для этой переменной, когда она запускается frontend.php, она будет подхвачена.

Вот что я пытался:

внутри frontend.php:

echo $template_header;

внутри $ template_header:

<tr><td><center>'.$menu_code.'</center></td></tr>

Как это должно выглядеть при запуске frontend.php в IE:

<tr><td><center><script>rest of menu coding in here</script></center></td></tr>

Как это выглядит, когда я запускаю его:

<tr><td><center>'.$menu_code.'</center></td></tr>

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

Ответы [ 3 ]

3 голосов
/ 27 июня 2009

Простая замена сработает, если я вас правильно понимаю:

$template_data = "<tr><td><center>{%REPLACE_WITH_CONTENT%}</center></td></tr>";
$template_data = str_replace("{%REPLACE_WITH_CONTENT%}", $menu_code, $template_data);
1 голос
/ 27 июня 2009

Если я вас правильно понимаю, это звучит так, как будто вы хотите eval () , который будет интерпретировать строку как код PHP, то есть любая ссылка на $ menu_code будет рассматриваться как PHP, а не как текст.

Из руководства:

<?php
  $string = 'cup';
  $name = 'coffee';
  $str = 'This is a $string with my $name in it.';
  echo $str. "\n";
  eval("\$str = \"$str\";");
  echo $str. "\n";
?>

Выводит следующее

This is a $string with my $name in it.
This is a cup with my coffee in it.

Внимание !!!!

Как указано в комментариях, этот метод (eval ()) открывает нам двери для серьезных проблем безопасности. Этот метод оценивает произвольный код, который может быть очень опасным.

0 голосов
/ 27 июня 2009

То, что вы, похоже, ищете:

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