You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中引入Header与Footer的最佳方式及header.php编写规范

PHP引入Header、Footer的最佳实践

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 16:45:02