Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.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和html代码的php mySQL echo数据库内容_Php_Html_Mysql_Echo - Fatal编程技术网

使用php和html代码的php mySQL echo数据库内容

使用php和html代码的php mySQL echo数据库内容,php,html,mysql,echo,Php,Html,Mysql,Echo,我想知道如何实现这一点:我在一个数据库中有通过php检索的内容。我想做的是回显内容,但不是纯文本,而是执行字符串中的php代码,并正确显示其中的html代码。所以我会包括一个页面,比如 ///File:test.php <?php //some php code to execute ?> <div> //some html </div> 但我不想把它包括在内,而是想做一些 /

我想知道如何实现这一点:我在一个数据库中有通过php检索的内容。我想做的是回显内容,但不是纯文本,而是执行字符串中的php代码,并正确显示其中的html代码。所以我会包括一个页面,比如

    ///File:test.php
    <?php
         //some php code to execute
    ?>
    <div>
        //some html
    </div>
但我不想把它包括在内,而是想做一些

    ///php code
    include test.php
    ///php code
    echo $content; ////$content="string retrieved from database";
我知道
eval()
,但这只在字符串仅包含php代码时有效

编辑 我想要执行的代码没有被用户以任何方式修改。包含php代码和hmtl代码的页面与执行我要求的操作有什么区别?如果有人能启发我,我会非常感激

提前感谢。

您可以使用

这样,您就可以编写一个PHP脚本,只需查询存储在数据库中的PHP代码并将其输出。结果将包含在包含文件的脚本中,并再次解释

下面是一个工作示例。它不从数据库中读取代码;为了简单起见,我只是用代码设置了一个变量,但如果
$a
从数据库中存储的字符串中获取它的值,它也会起作用

首先,您必须将
allow\u url\u include
设置为
On
。打开
php.ini
文件并添加

allow_url_include = On
然后重新启动httpd服务器

现在,我们将编写两个PHP脚本。第一个是从数据库查询源代码并将其发送到名为
include.php
的stdout。在本例中,它只声明了一个简单的函数:

<?php
  header('Content-type: application/x-httpd-php');

  $a = <<<PHP_STR
<?php
  function test() {
    echo 'Hello World!';
  }
?>
PHP_STR;

  echo $a;
?>
现在我打开
http://localhost/test.php
在5月份的浏览器中,我看到了浅绿色背景上的白色字符,周围有一条黑色的细边框


希望它有帮助。

坏习惯,不要这样做,不要在数据库中存储代码。谷歌
为什么不将php代码存储在数据库中,然后执行它
你会在这个问题上发现很多东西。不要那样做。是什么让你想这么做?同上-听起来很混乱和危险。请注意,你在担心安全问题-尽管如此,我还是非常希望有人能回答这个问题。有些解决方案确实比其他解决方案更糟糕,但这属于非常糟糕的类别,因此没有人会这样做。所以我再次问:是什么让你想这么做?谢谢你的回答,你能再解释一下你的意思吗?今天中午我会编辑我自己的答案,用一个工作示例来完成,如果你觉得合适的话:)完成了。然而,从技术上看,这是如何做到的,但对于你想做的事情,可能有比这更好的解决方案。
<?php
  include('http://localhost/include.php');
?>
<span style="background: lightgreen; color: white; border: 1px solid black;">
  <?php test(); ?>
</span>