PHP Conference Japan 2024

basename

(PHP 4, PHP 5, PHP 7, PHP 8)

basename傳回路徑的尾端名稱部分

說明

basename(字串 $path, 字串 $suffix = ""): 字串

給定一個包含檔案或目錄路徑的字串,此函式將傳回尾端的名稱部分。

注意事項:

basename() 函式會直接處理輸入字串,不會辨識實際的檔案系統或路徑組成部分,例如 ".."。

警告

basename() 函数會受語系影響,因此若要正確處理包含多位元字元的檔案路徑,必須使用 setlocale() 函數設定對應的語系。如果 path 包含目前語系不支援的字元,basename() 的行為將無法預期。

參數

path

檔案路徑。

在 Windows 系統中,斜線 (/) 和反斜線 (\) 都可以作為目錄分隔字元。在其他環境中,使用斜線 (/)。

suffix

如果檔名以 suffix 結尾,則也會將其移除。

回傳值

回傳指定 path 的基本檔名。

範例

範例 #1 basename() 範例

<?php
echo "1) ".basename("/etc/sudoers.d", ".d").PHP_EOL;
echo
"2) ".basename("/etc/sudoers.d").PHP_EOL;
echo
"3) ".basename("/etc/passwd").PHP_EOL;
echo
"4) ".basename("/etc/").PHP_EOL;
echo
"5) ".basename(".").PHP_EOL;
echo
"6) ".basename("/");
?>

上述範例會輸出:

1) sudoers
2) sudoers.d
3) passwd
4) etc
5) .
6)

另請參閱

新增註解

使用者貢獻的註解 4 筆註解

53
匿名
7 年前
很遺憾,經過 20 年的發展,我們竟然還沒有 mb_basename() 函數!

// 適用於 Windows 和 Unix 系統
function mb_basename($path) {
if (preg_match('@^.*[\\\\/]([^\\\\/]+)$@s', $path, $matches)) {
return $matches[1];
} else if (preg_match('@^([^\\\\/]+)$@s', $path, $matches)) {
return $matches[1];
}
return '';
}
10
(移除) dot nasretdinov at (移除) dot gmail dot com
16 年前
以下的程式碼片段適用於我的情況,可以處理我的俄文 UTF-8 字元

<?php
function mb_basename($file)
{
return
end(explode('/',$file));
}
><

這個函式適用於 UNIX 伺服器
4
KOmaSHOOTER at gmx dot de
19 年前
如果您想要取得檔案所在的目前路徑,而不是完整路徑,請使用以下程式碼 :)

<?php
echo('dir = '.basename (dirname($_SERVER['PHP_SELF']),"/"));
// 傳回目前使用目錄的名稱
?>

範例

www 目錄: domain.com/temp/2005/january/t1.php

<?php
echo('dirname <br>'.dirname($_SERVER['PHP_SELF']).'<br><br>');
// 傳回: /temp/2005/january
?>

<?php
echo('file = '.basename ($PHP_SELF,".php"));
// 傳回: t1
?>

如果將這兩個函式組合起來,您會得到以下結果
<?php
echo('dir = '.basename (dirname($_SERVER['PHP_SELF']),"/"));
// 傳回: january
?>

若要取得完整路徑,請使用以下程式碼
<?php
echo(' PHP_SELF <br>'.$_SERVER['PHP_SELF'].'<br><br>');
// 傳回: /temp/2005/january/t1.php
?>
5
瑞典男孩
15 年前
以下是如何快速取得檔案名稱 (不含副檔名) 的方法,無論檔案的副檔名為何。

<?php

// 您的檔案
$file = 'image.jpg';

$info = pathinfo($file);
$file_name = basename($file,'.'.$info['extension']);

echo
$file_name; // 輸出 'image'

?>
To Top