PHP 文件系统 basename() 函数



PHP 文件系统basename()函数允许您从完整路径中仅提取文件名称。它通常用于从完整路径字符串中提取文件名。

basename()的主要目标是在忽略先前目录名称的同时提取路径的尾随名称组件。

假设您知道文件的完整地址,例如“C:/documents/picture.jpg”。如果您只需要“picture.jpg”文件名,则可以使用basename()来实现此目的。

语法

以下是 PHP 文件系统basename()函数的语法 -

string basename ( string $path [, string $suffix ] )

参数

下面提到了使用basename()函数所需的的参数 -

序号 参数及说明
1

path(必需)

需要从中提取文件名的路径字符串。

2

suffix(可选)

此后缀将从提取的文件名中删除。

返回值

它返回提取的文件名作为字符串。

PHP 版本

basename()函数是 PHP 核心的一部分,在 PHP 4、PHP 5、PHP 7 和 PHP 8 中可用。

示例

在此示例中,我们将使用 PHP 文件系统basename()函数来简单地提取路径中提供的文件名,并打印带扩展名和不带扩展名的文件名。因此,我们将使用basename()从路径中删除文件名组件,然后再将其提供给 $file 变量。

<?php

   // specify the directory path here
   $path = "/Applications/XAMPP/xamppfiles/htdocs/mac/index.php";

   //  $file is set to "index.php"
   $file = basename($path);  

   // This will print "Full file name: index.php"
   echo "Full file name: " . $file . "<br>"; 

   // $file is set to "index"
   $file = basename($path, ".php");  

   // This will print "File name without extension: index"
   echo "File name without extension: " . $file; 

?>

输出

这将产生以下结果 -

Full file name: index.php
File name without extension: index

示例

现在,我们将使用basename()函数处理不同的文件扩展名。因此,在这里我们可以使用此函数处理不同的文件扩展名。basename()函数将获取每个代码中提到的路径的文件名,但不包括其扩展名。

<?php
   // specify the directory path here
   $path1 = "/Applications/XAMPP/xamppfiles/htdocs/mac/index.php";
   $path2 = "/Applications/XAMPP/xamppfiles/htdocs/mac/myfile.txt";
   $path3 = "/Applications/XAMPP/xamppfiles/htdocs/mac/logo.gif";

   // Filename without extension: php
   echo "Filename without extension: " . basename($path1, ".php") . "<br>"; 

   // Filename without extension: text
   echo "Filename without extension: " . basename($path2, ".txt") . "<br>"; 

   // Filename without extension: gif
   echo "Filename without extension: " . basename($path3, ".gif") . "<br>"; 

?> 

输出

这将产生以下结果 -

Filename without extension: index
Filename without extension: myfile
Filename without extension: logo

示例

处理 URL 最有可能指的是如何处理包含查询参数的 URL 的特定示例。因此,解析 URL 以使用 parse_url() 函数获取路径,然后使用basename()提取并打印文件名。

<?php
   // specify the directory path here
   $url = "/Applications/XAMPP/xamppfiles/htdocs/mac/index.php?version=1";

   // Parse the URL to get the path
   $parsed_url = parse_url($url, PHP_URL_PATH);

   // Use basename() on the path to get the file name
   $filename = basename($parsed_url);

   echo "Filename: " . $filename;
?> 

输出

这将导致以下结果 -

Filename: index.php

示例

因此,basename()函数也可以处理其中包含多个点的文件名。因此,我们只需将目录路径传递给basename()即可获得此功能。

以下是此示例的简单演示 -

<?php
   // specify the directory path here
   $path = "/Applications/XAMPP/xamppfiles/htdocs/mac/file.with.dots.txt";

   // use basename() function to extract the filename
   $filename = basename($path);

   // Output: Filename: file.with.dots.txt
   echo "Filename: " . $filename; 
?> 

输出

这将产生以下结果 -

Filename: file.with.dots.txt

总结

PHP basename()函数是一个非常有用的功能,用于提取给定路径字符串的文件名部分。实际上,它为用户提供了一个选项,可以选择在最后删除任何指定的要提取的后缀。

php_function_reference.htm
广告