Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何以PHP脚本的形式运行字符串的输出?_Php - Fatal编程技术网

如何以PHP脚本的形式运行字符串的输出?

如何以PHP脚本的形式运行字符串的输出?,php,Php,我在数据库中有一个字段,其中包含以下值: <p><!--? echo get_block(\'contact\');?--><?php echo get_block('home-page'); ?></p> 当我在前端提取记录时,它只是将输出显示为字符串: echo $var = ht

我在数据库中有一个字段,其中包含以下值:

<p><!--? echo get_block(\'contact\');?--><?php echo get_block('home-page'); ?></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,就这样吧。”。