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


how to save php code in database

当前我正在处理一个项目,其中我必须将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代码呢?

highlight_string字符串工作良好

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

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

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

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

在许多合法的用例中,您希望将PHP命令存储在数据库中,我个人认为在不了解情况的情况下大喊"不要这么做"有点无益。

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

阅读这篇文章和这篇文章,了解更多关于使用eval()的陷阱。

但我不知道如何检索存储在数据库中的代码。

好吧,如果你不能做到这一点,请问一个数据库问题(请在你学习了PHP和数据库编程课程后)。因为除非这样,否则剩下的就完全不同了。