如何在数据库中保存PHP代码

时间:2013-06-25 04:15:55

标签: php database eval

目前我正在开展一个项目,我必须将some PHP code保存在数据库中,我使用PHP tags保存代码。

但我没有得到如何检索完全存储到数据库中的代码。

我尝试过以下方法:

a)直接检索:当我直接检索数据库时,$ row ['code']的值为空白

b)使用eval():当我使用eval()时,我收到语法错误:

syntax error, unexpected '<' in H:\xampp\htdocs\trycodeonline\testing.php(27) : eval()'d code on line 1

c)使用没有php标签的eval():当我删除php代码时,我得到结果而不是代码,就像我想要打印echo "hello"但它正在打印“你好”

那么如何打印php代码呢?

4 个答案:

答案 0 :(得分:2)

highlight_string字符串工作正常

  $str=highlight_string('<?php
   echo "hello";
  ?>',true);
  echo $str;

答案 1 :(得分:1)

将任何非字母数字字符转换为HTML等效字符(即空格),然后将其存储在数据库中。然后你的查询可以直接在木材中使用它在视图中。

答案 2 :(得分:0)

如果您真的想这样做,可以使用eval()作为您的方法c)建议:

$var // your variable with the data from the DB
<?php echo eval("?>". $var ."<?") ?>

有许多合法的用例需要将PHP命令存储在数据库中,我个人觉得在不知道情况有点无用的情况下大喊“不要这样做”。

无论如何,正如已经在各种线程中指出的那样,使用这种方法存在安全问题和其他陷阱,我建议不要使用它。它将使调试更加困难,并增加潜在的安全漏洞,等等......

阅读this帖子和this帖子,了解有关使用eval()的陷阱的更多信息。

答案 3 :(得分:0)

  

但我没有得到如何检索完全存储在数据库中的代码。

好吧,如果你无法做到这一点,请询问数据库问题(请在完成PHP和数据库编程课程后)。因为除非这种方法有效,否则其余的故事完全不同。