PHP | basename 函數

怎樣獲取路徑中的文件名稱

最近更新時間 2020-12-16 15:40:41

basename 函數返回路徑中的文件名部分。函數有一個必填參數,包含路徑的字符串。

在 Windows 中,斜線 “/” 和反斜線 “\” 都可以用作目錄分隔符。在其它環境下是斜線 “/”。Window 系統中可以處理 “c:file.txt” 這種格式路徑。

函數定義

basename(string $path [, string $suffix ]):string
// 源文件位於:ext/standard/string.c
# 函數定義


PHP_FUNCTION(basename)
{
  char *string, *suffix = NULL;
  size_t   string_len, suffix_len = 0;

  ZEND_PARSE_PARAMETERS_START(1, 2)
    Z_PARAM_STRING(string, string_len)
    Z_PARAM_OPTIONAL
    Z_PARAM_STRING(suffix, suffix_len)
  ZEND_PARSE_PARAMETERS_END();

  RETURN_STR(php_basename(string, string_len, suffix, suffix_len));
}

...
#if defined(PHP_WIN32)
        if (*s == '/' || *s == '\\') {
#else
        if (*s == '/') {
#endif
...

參數

  • check$path - 包含路徑的字符串。Windowx 下反斜槓 \ 也是路徑分隔符。
  • check$suffix - 可選,文件擴展名,默認為空,擴展名會跟文件一起返回。

返回值

  • checkstring - 返回文件名。

示例1: - 使用 basename() 函數獲取文件名。

<?php
/**
 * PHP 使用 basename() 函數獲取文件名。
 *
 * @since Version 1.0.0
 * @filesource
 */

// 圖片路徑
$path = "/upload/images/apple.jpg";

// 獲取文件名稱
$fileName = dirname();

echo "FileName::".basename($path).PHP_EOL;
echo "FileName::".basename($path, ".jpg").PHP_EOL;

// 獲取當前PHP文件
echo "PHP File::".basename(__file__).PHP_EOL;
FileName::apple.jpg
FileName::apple
PHP File::index.php

擴展名需要帶上 “.”,否則會算到文件名上面。

rss_feed