PHP | basename 函数

Lasted 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

扩展名需要带上 “.”,否则会算到文件名上面。