从MySQL数据库中调用PHP变量

时间:2009-06-27 00:14:42

标签: php mysql database variables echo

我目前正在开发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>

在IE中运行frontend.php应该是什么样子:

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

运行时的样子:

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

它像文字一样显示它。这可能是一个简单的问题,但是在这个项目的紧迫期限内,我们将非常感谢任何帮助,我们将非常感谢任何建议。谢谢

3 个答案:

答案 0 :(得分:3)

如果我理解正确的话,简单的替换就可以解决问题:

$template_data = "<tr><td><center>{%REPLACE_WITH_CONTENT%}</center></td></tr>";
$template_data = str_replace("{%REPLACE_WITH_CONTENT%}", $menu_code, $template_data);

答案 1 :(得分:1)

如果我理解正确,听起来你想要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())为重大安全问题打开了一扇大门。此方法将评估任意代码,这可能非常危险。

答案 2 :(得分:-1)

您似乎在寻找的是:

eval( $menu_code );