PHP中引入Header与Footer的最佳方式及header.php编写规范
1. 引入公共组件的最优方式
优先用require_once加载header和footer,和include_once的区别是:
require_once加载失败时会抛出致命错误,直接终止页面运行,适合header、footer这种必须存在的核心公共组件,能及时发现文件路径配置错误include_once加载失败时仅抛出警告,页面会继续运行,适合非核心的可选组件
引入的代码示例:
// 页面开头引入头部 <?php require_once 'header.php'; ?> <!-- 页面主体内容代码 --> // 页面末尾引入底部 <?php require_once 'footer.php'; ?>
2. header.php的编写规范
你贴的HTML公共头部代码完全可以放到header.php中,全局通用的元标签、公共样式放在公共文件里能大幅减少重复代码,不需要每个页面重复编写。但是要注意不要写死个性化内容,需要预留自定义入口适配不同页面的需求,优化后的header.php参考如下:
<?php // 预定义默认参数,调用页面未传参时使用默认值 $pageTitle = $pageTitle ?? '站点默认名称'; $customMeta = $customMeta ?? ''; $customCss = $customCss ?? ''; ?> <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title><?php echo htmlspecialchars($pageTitle); ?></title> <!-- 全局公共样式,所有页面统一加载 --> <link rel="stylesheet" href="style.css"> <!-- 不同页面的专属meta标签插入位 --> <?php echo $customMeta; ?> <!-- 不同页面的专属样式插入位 --> <?php echo $customCss; ?> </head> <body> <!-- 全局公共导航栏 --> <nav> <ul> <li><a href="/">首页</a></li> <li><a href="/about">关于我们</a></li> <li><a href="/contact">联系我们</a></li> </ul> </nav>
对应的页面调用示例(以新闻页为例):
<?php // 先定义当前页面的专属配置 $pageTitle = '新闻中心'; $customMeta = '<meta name="description" content="站点最新动态、行业资讯汇总">'; $customCss = '<link rel="stylesheet" href="news.css">'; // 再引入头部 require_once 'header.php'; ?> <!-- 新闻页专属主体内容 --> <div class="news-list"> 新闻列表内容 </div> <?php require_once 'footer.php'; ?>
对应的footer.php参考如下,负责闭合标签、加载公共脚本和底部公共内容:
<!-- 全局公共底部版权栏 --> <footer> <p>© 2024 站点版权所有</p> </footer> <!-- 全局公共JS --> <script src="common.js"></script> </body> </html>
3. 要不要只在header.php放导航栏?
如果你的站点不同页面的head部分差异极大,比如需要引入大量不同的第三方脚本、特殊meta标签,维护公共header的自定义参数成本很高,也可以拆分结构:将导航栏单独抽为nav.php,DOCTYPE、head部分由每个页面自行编写。不过绝大多数中小站点使用上面的带参数公共header方案即可,代码冗余度更低,维护效率更高。
内容的提问来源于stack exchange,提问作者sauvignon
相关产品推荐
相关产品推荐

