插件窝 干货文章 php如何去除路径后缀

php如何去除路径后缀

函数 使用 filenameWithoutE 扩展名 946    来源:    2025-03-18

在PHP中,你可以使用多种方法来去除路径的后缀(即文件扩展名)。以下是几种常见的方法:

方法1:使用 pathinfo() 函数

pathinfo() 函数可以返回文件路径的信息,包括文件名、目录名、扩展名等。你可以使用它来获取不带扩展名的文件名。

$path = '/path/to/your/file.txt';
$filename = pathinfo($path, PATHINFO_FILENAME);

echo $filename; // 输出: file

方法2:使用 basename()strrpos() 函数

你可以使用 basename() 函数获取文件名,然后使用 strrpos()substr() 函数来去除扩展名。

$path = '/path/to/your/file.txt';
$filename = basename($path);
$extensionPosition = strrpos($filename, '.');

if ($extensionPosition !== false) {
    $filenameWithoutExtension = substr($filename, 0, $extensionPosition);
} else {
    $filenameWithoutExtension = $filename;
}

echo $filenameWithoutExtension; // 输出: file

方法3:使用 preg_replace() 函数

你可以使用正则表达式来去除文件扩展名。

$path = '/path/to/your/file.txt';
$filenameWithoutExtension = preg_replace('/\.[^.]+$/', '', basename($path));

echo $filenameWithoutExtension; // 输出: file

方法4:使用 explode()implode() 函数

你可以使用 explode() 函数将文件名按 . 分割,然后使用 implode() 函数重新组合除最后一个部分之外的所有部分。

$path = '/path/to/your/file.txt';
$filenameParts = explode('.', basename($path));
$filenameWithoutExtension = implode('.', array_slice($filenameParts, 0, -1));

echo $filenameWithoutExtension; // 输出: file

方法5:使用 rtrim()strrchr() 函数

你可以使用 strrchr() 函数找到最后一个 . 的位置,然后使用 rtrim() 函数去除扩展名。

$path = '/path/to/your/file.txt';
$filename = basename($path);
$filenameWithoutExtension = rtrim($filename, strrchr($filename, '.'));

echo $filenameWithoutExtension; // 输出: file

总结

以上方法都可以有效地去除路径中的文件扩展名。选择哪种方法取决于你的具体需求和个人偏好。pathinfo() 函数通常是最简洁和易读的方式。