首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 簡易麵包屑導航條實現:基於 REQUEST_URI 自動生成

     編輯:PHP 綜合知識

功能描述

根據 $_SERVER['REQUEST_URI'] 自動生成麵包屑導航,如:首頁 > 目錄1 > 目錄2 > 當前頁。支援自定義目錄顯示名稱映射。

核心代碼

<?php
// 導航條配置:目錄名 => 顯示名(可選)
$label = array(
    "目錄1" => "導航名1",
    "目錄2" => "導航名2",
    "目錄3" => "導航名3"
);

$ur1 = $REQUEST_URI; // 獲取當前請求 URI
$komplettx = "";

while ($ur1 != "") {
    $text = basename($ur1);        // 取文件/目錄名
    if (isset($label[$text])) {    // 若有自定義顯示名則替換
        $text = $label[$text];
    }
    $link = $ur1;
    $curx = " > <a href=\"$link\">$text</a>";
    $komplettx = $curx . $komplettx; // 反向拼接,最終順序正確
    $ur1 = dirname($ur1);          // 遞歸向上一級目錄
}

echo $komplettx;
?>

邏輯解析

  1. 從完整 URI 開始,basename() 取最末段(文件名或目錄名)
  2. 查詢 $label 映射表,無則保持原名
  3. 生成鏈接片段 > <a href="...">名稱</a>
  4. $komplettx = $curx . $komplettx 實現「由內向外」反向拼接,最終輸出順序為根→葉
  5. dirname() 遞歸截取父目錄,直到根目錄 "" 結束

使用方式

在頁面需顯示導航處 include 'nav.php'; 即可。

改進建議

  • 首頁處理:循環會產生 > <a href="">...</a>,建議特判根目錄輸出「首頁」
  • URL 規範化:去除查詢字符串 parse_url($ur1, PHP_URL_PATH)
  • 編碼安全:輸出前 htmlspecialchars($text) 防 XSS
  • 現代寫法:使用 explode('/', trim($path, '/')) 分割路徑,array_map 映射,implode 組裝

現代化重寫範例

<?php
function breadcrumb(array $labelMap = []): string {
    $path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
    $parts = array_filter(explode('/', $path));
    $crumbs = ['<a href="/">首頁</a>'];
    $accum = '';
    foreach ($parts as $part) {
        $accum .= '/' . $part;
        $name = isset($labelMap[$part]) ? $labelMap[$part] : ucfirst($part);
        $crumbs[] = '<a href="' . htmlspecialchars($accum) . '">' . htmlspecialchars($name) . '</a>';
    }
    return implode(' > ', $crumbs);
}
echo breadcrumb(['dir1' => '產品中心', 'dir2' => '技術文檔']);
?>
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved