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

基于文件路径用PHP include实现Bootstrap5动态页面头部及修复

故障根源

代码失效和Bootstrap 5没有任何关系,是PHP版本升级带来的语法兼容问题:

  • PHP 5.4.0及以上版本默认关闭了register_globals配置,你旧代码里直接用的$PHP_SELF是早年PHP自动将$_SERVER数组元素注册为全局变量的旧写法,新版本里这个变量根本不存在,所有路径判断逻辑全部失效
  • 原逻辑用strstr做字符串匹配没有做路径边界校验,很容易出现相似路径误匹配的问题
  • 原代码输出的HTML标签属性没加引号,不符合现代HTML规范,部分浏览器下会出现渲染异常
修复后可直接使用的代码

直接把你原来pageheader.php里的内容替换成下面的代码即可:

<?php
// 基础配置项 可根据实际需求调整
$base_path = "/portfolio";
$img_common_attr = 'width="525" height="41" border="0" alt="页面头部"';
$current_path = $_SERVER['PHP_SELF'];

// 按路径匹配对应头部内容
if (str_ends_with($current_path, "{$base_path}/about/index.php")) {
    echo '<h1>About Page Header HTML/CSS Here!</h1>';
} elseif (str_ends_with($current_path, "{$base_path}/index.php")) {
    echo 'Home Page Header Text Here';
} elseif (str_ends_with($current_path, "{$base_path}/design/index.php")) {
    echo "<img src=\"{$base_path}/images/header_design.jpg\" {$img_common_attr}>";
} elseif (str_ends_with($current_path, "{$base_path}/articles/index.php")) {
    echo "<img src=\"{$base_path}/images/header_articles.jpg\" {$img_common_attr}>";
} else {
    // 未匹配到规则时显示的默认头部
    echo '<h1>Hello World.</h1>';
}
?>
后续维护说明
  • 新增页面的专属头部时,只需要参照现有elseif分支的格式新增匹配规则即可,不需要逐个修改站点内的页面文件,所有头部逻辑都集中在这一个文件里,改完全站生效
  • 平时复用统一HTML/CSS结构只替换文字、图片的需求,直接在对应分支修改对应内容即可,写法和普通页面代码没有区别
  • 如果你的服务器PHP版本低于8.0,不支持str_ends_with函数,把代码里所有str_ends_with($current_path, 目标匹配路径)替换成strpos($current_path, 目标匹配路径) !== false就能正常运行

内容的提问来源于stack exchange,提问作者pjeigh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 01:48:47