2

目前我正在开发一个必须保存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"但它正在打印“hello”

那么如何打印 php 代码呢?

4

4 回答 4

2

highlight_string 字符串工作正常

  $str=highlight_string('<?php
   echo "hello";
  ?>',true);
  echo $str;
于 2013-06-25T04:41:26.460 回答
1

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

于 2013-06-25T04:35:55.997 回答
0

但是我不知道如何完全按照存储到数据库中的方式检索代码。

好吧,如果您无法做到这一点,请询问数据库问题(请在您参加 PHP 和数据库编程课程之后)。因为除非这行得通,否则无论如何其余的都是完全不同的故事。

于 2013-06-25T04:50:42.990 回答
0

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

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

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

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

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

于 2013-06-25T04:49:09.733 回答