如何以PHP脚本的形式运行字符串的输出?
我在数据库中有一个字段,其中包含以下值:如何以PHP脚本的形式运行字符串的输出?,php,Php,我在数据库中有一个字段,其中包含以下值: <p><!--? echo get_block(\'contact\');?-->&lt;?php echo get_block(&#39;home-page&#39;); ?&gt;</p> 当我在前端提取记录时,它只是将输出显示为字符串: echo $var = ht
<p><!--? echo get_block(\'contact\');?-->&lt;?php echo get_block(&#39;home-page&#39;); ?&gt;</p>
当我在前端提取记录时,它只是将输出显示为字符串:
echo $var = html_entity_decode(stripslashes($row_content_list["content"]));
输出
"<?php echo get_block('home-page');?>"
“”
我希望它能充当PHP脚本 不能将其添加为PHP脚本 PHP=服务器端语言,它处理给定的命令并抛出HTML输出。(ofc有时出错)无法重新处理已处理的输出 一旦您从数据库中获取数据,它就已经被处理了。第二,您不能回显预期要执行的PHP函数。因为ECHO本身就是一个php(系统)东西 您可能需要重新规划您的方法
编辑:不要使用eval。特别是当数据从数据库中出来时,除非并且直到您对数据清理非常确定。像这样创建.php文件
$filename='script.php'
$openedFile = fopen($fileName, 'w') or die("can't open file");
fwrite($openedFile, $var);
fclose($openedFile);
在那里写下你的$var
,然后包含它…它可以工作:)但仍然不安全你应该试试这个函数,它接受一个字符串并从中反映出PHP
唯一要提到的是,您应该删除
标记
$var= html_entity_decode(stripslashes($row_content_list["content"]));
eval($var);
为什么要在数据库中存储php这几乎总是一个糟糕的想法。你为什么要在数据库中以添加斜杠的HTML实体编码形式存储带有嵌入式PHP代码的HTML?!太可怕了我害怕提到其他问题:-)你不应该在数据库中存储PHP。如果你真的想,我想你可以使用eval()函数,但这是非常不鼓励的。简单的解决方案是eval($var)它。但这是丑陋和不安全的。为什么数据库首先要保存这些值?你能把数据库改成不带代码的实数吗?请解释一下这个答案是怎么错的吗?+1。。。这是我所能想到的唯一可行的方法,尽管不建议这样做,但也可能会使整个服务器处于危险之中。另一方面,像这样的东西越多,就意味着熟练的顾问需要做更多的工作,所以我想我们不应该太大惊小怪……除了速度慢得多而且更混乱之外,这与
eval
有什么不同呢?对于eval
来说,代码不能被包装在打开和关闭的PHP标记中,即“echo”Hi!“必须通过,而不是“嗯,解决这个问题真的不难:eval(“?>$codeOK,就这样吧。”。