使用php和html代码的php mySQL echo数据库内容
我想知道如何实现这一点:我在一个数据库中有通过php检索的内容。我想做的是回显内容,但不是纯文本,而是执行字符串中的php代码,并正确显示其中的html代码。所以我会包括一个页面,比如使用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> 但我不想把它包括在内,而是想做一些 /
///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>