繁体   English   中英

从MySQL数据库内部调用PHP变量

[英]Calling PHP variables from inside a MySQL Database

我目前正在研究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>

它像文本一样显示。 这可能是一个简单的问题,但是在此项目的紧迫期限内,任何帮助将不胜感激,并且任何建议将不胜感激。 谢谢

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

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

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

您似乎正在寻找的是:

eval( $menu_code );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM