php - 使用 PHP 从 SQL 中打印 HTML 和 PHP 代码
问题描述
我将包含 PHP 代码的 HTML 代码存储在我的数据库中,我想将它输出到我的网站上。PHP 代码将被注释掉。
SQL存储代码:
Hallo und ein herzliches Willkommen auf der Homepage von <?php echo($p_name); ?>. <br>
Euer <?php echo($p_name); ?>.
PHP SQL 打印机:
$query = "SELECT * FROM `news`";
$result = mysqli_query($db, $query);
$row = mysqli_fetch_array($result);
if (!empty($row)) {
echo(utf8_encode($row['content']));
}
表结构:
CREATE TABLE `news` (
`entryid` int(11) NOT NULL,
`content` varchar(8000) CHARACTER SET latin1 COLLATE latin1_german2_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `news`
ADD PRIMARY KEY (`entryid`);
ALTER TABLE `news`
MODIFY `entryid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;
COMMIT;
---结果:---
Hallo und ein herzliches Willkommen auf der Homepage von <!--?php echo($p_name); ?-->. <br>
Euer <!--?php echo($p_name); ?-->.
解决方案
我将包含 PHP 代码的 HTML 代码存储在我的数据库中,我想将它输出到我的网站上。
答案很简单:
不要那样做。曾经。
一般来说,在数据库中存储这样的动态 HTML 并不是一个好主意,但如果你只有一个带有几个占位符的常规 HTML 来输出一些数据,那么放一些占位符,而不是 PHP 代码:
Hallo und ein herzliches Willkommen auf der Homepage von %p_name%
然后只需使用str_replace()
:
echo str_replace("%p_name%", $p_name, $row['content']));
如果您想存储带有循环、条件等的全功能 HTML 模板,可以使用,但仍不推荐。使用像 Twig 这样的专用模板引擎并将模板存储在文件系统中,而不是数据库中
推荐阅读
- sql - SQL Server 中不同计算顺序的结果不同
- apache-zookeeper - hadoop 3.3.1 'get command' 不返回 cZxid,ctime,mZxid
- typescript - 使用打字稿中未定义的“可选”参数叶键值定义嵌套对象
- php - 在特定产品 ID woocommerce 上添加自定义字段
- laravel - Laravel 删除 URL 中的 /index.php/ 并强制使用 HTTPS
- swift - 下拉菜单在表单中切成两半
- javascript - 如何使用 socket.io 来提高使用 JavaScript 的 RTCmulticonnection 的性能?
- node.js - heroku 消除非开发依赖
- flutter - 在 Flutter 应用程序中使用 Firebase 云功能在家庭自动化应用程序上添加例程/时间表
- java - 在模块化项目中导入 Jython 时出现问题