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

PHP 從完整路徑分離目錄與檔名:basename() 與 dirname() 實戰指南

     編輯:PHP 相關知識

在 PHP 開發中,處理檔案路徑是常見需求。無論是建構上傳路徑、讀取設定檔,還是記錄日誌,都需要從完整路徑中快速提取「檔名」或「所在目錄」。PHP 內建的 basename() 與 dirname() 正是為此設計的輕量級工具,無需正則表達式,即可精準拆解路徑。

核心函數速覽

  • basename(path, suffix):回傳路徑中的檔名部分。若提供 suffix 參數,會自動移除副檔名(如 .php)。
  • dirname(path):回傳路徑中的目錄部分,不包含尾部斜線。

實際範例

<?php
$fullPath = 'C:/wamp/php/php.ini';

// 取得檔名:php.ini
$fileName = basename($fullPath);

// 取得目錄:C:/wamp/php
$dirPath = dirname($fullPath);

echo "檔名:$fileName\n";
echo "目錄:$dirPath\n";
?>

進階用法:移除副檔名

<?php
$path = '/var/www/html/index.php';
echo basename($path, '.php'); // 輸出:index
?>

注意事項

  • 函數僅做字串處理,不會檢查路徑是否真實存在。
  • Windows 路徑使用反斜線 \ 時,建議先統一轉為正斜線 /,或使用 DIRECTORY_SEPARATOR 常數以確保跨平台相容。
  • 若路徑以斜線結尾(如 /home/user/),basename() 會回傳空字串,dirname() 則回傳上一層目錄。

最佳實踐建議

搭配 pathinfo() 可一次取得完整資訊(dirname、basename、extension、filename),程式碼更簡潔:

<?php
$info = pathinfo('/etc/nginx/nginx.conf');
print_r($info);
/*
Array
(
    [dirname] => /etc/nginx
    [basename] => nginx.conf
    [extension] => conf
    [filename] => nginx
)
*/
?>

掌握這兩個函數,能讓檔案路徑操作更直觀、程式碼更易維護。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved