如何在PHP模板中动态引入页面?实现多页面切换需求
实现模板动态加载页面的方案
修改template.php
统一请求入口,通过URL参数指定要加载的内容页,同时加入安全校验避免非法文件包含:
<?php // 定义允许加载的页面白名单 $allowed_pages = ['page1', 'page2']; // 获取URL参数,默认加载page1 $page = isset($_GET['page']) ? $_GET['page'] : 'page1'; // 校验页面合法性,防止恶意文件包含 if (!in_array($page, $allowed_pages)) { $page = 'page1'; } $content = "{$page}.php"; ?> <html> <head> <title>template</title> </head> <body> <h1>TEMPLATE</h1> <a href="template.php?page=page1">page1</a> <a href="template.php?page=page2">page2</a> <?php include($content); ?> <h1>TEMPLATE</h1> </body> </html>
page1.php 和 page2.php 保持原有内容
page1.php:
<h2>page 1</h2>
page2.php:
<h2>page 2</h2>
功能说明
- 点击导航菜单时,请求会指向
template.php并携带对应页面参数,模板内会根据参数加载指定的内容文件 - 白名单校验确保只能加载预设的合法页面,避免恶意路径遍历风险
- 直接访问
template.php时,默认自动加载page1的内容
内容的提问来源于stack exchange,提问作者achraf bourki
相关产品推荐
相关产品推荐

