В настоящее время я работаю над системой CMS, которая строит веб-сайт прямо из информации, сохраненной в базе данных MySQL.
Вот проблема, с которой я сталкиваюсь:
Вот что я пытался:
внутри 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>
он отображает его как текст. Вероятно, это простая проблема, но любая помощь была бы высоко оценена в сжатые сроки с этим проектом, и любой совет был бы весьма признателен. Спасибо
Простая замена сделала бы трюк, если бы я вас правильно понял:
$template_data = "<tr><td><center>{%REPLACE_WITH_CONTENT%}</center></td></tr>";
$template_data = str_replace("{%REPLACE_WITH_CONTENT%}", $menu_code, $template_data);
Если я правильно вас понимаю, похоже, что вы хотите eval(), который будет интерпретировать строку как PHP-код, что означает любую ссылку to $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()) открывает нам дверь для серьезных проблем безопасности. Этот метод будет оценивать произвольный код, который может быть очень опасным.
Кажется, что вы ищете:
eval( $menu_code );