如何在 PHP 中移除字符串的扩展名

phpserver side programmingprogramming更新于 2025/7/7 12:37:17

PHP(超文本预处理器):PHP(超文本预处理器)是一种广泛使用的开源服务器端脚本语言,专为 Web 开发而设计。它最初由 Rasmus Lerdorf 于 1994 年创建,现已发展成为全球数百万开发人员使用的强大语言。

PHP 主要用于开发动态网页和 Web 应用程序。它允许开发人员将 PHP 代码嵌入 HTML 中,从而轻松地将服务器端逻辑与表示层混合。 PHP 脚本在服务器上执行,生成的 HTML 代码发送到客户端浏览器。

在 PHP 中,有几种方法可以从字符串中删除文件扩展名。

以下是四种常用方法:

  • 使用 pathinfo() 函数

  • 使用 substr() 和 strrpos() 函数

  • 使用explode() 和 implode() 函数

  • 使用正则表达式 (regex)

使用 pathinfo() 函数

使用 pathinfo() 函数是从 PHP 字符串中删除文件扩展名的一种方法。

示例

<?php
   $filename = 'exampleFile.txt';
   $filenameWithoutExtension = pathinfo($filename, PATHINFO_FILENAME);
?>

在此方法中,pathinfo() 函数使用两个参数调用:文件名字符串和 PATHINFO_FILENAME 常量。该函数返回一个包含路径信息的关联数组。访问数组的 PATHINFO_FILENAME 元素将返回不带扩展名的文件名。

在上面的示例中,变量 $filenameWithoutExtension 将保存值"example",即不带扩展名的文件名。

您可以将"exampleFile.txt"替换为您自己的文件名字符串,以从其他文件名中删除扩展名。

使用 substr() 和 strrpos() 函数

使用 substr() 和 strrpos() 函数是从 PHP 字符串中删除扩展名的另一种方法。以下是示例:

<?php
   $filename = 'exampleFile.txt';
   $extensionPosition = strrpos($filename, '.');
   $filenameWithoutExtension = substr($filename, 0, $extensionPosition);
?>

在此方法中,strrpos() 用于查找文件名字符串中点 (.) 最后一次出现的位置。它以整数形式返回该位置。然后,substr() 用于提取从文件名开头到扩展名位置的子字符串。

在上面的示例中,变量 $filenameWithoutExtension 将保存值"example",即不带扩展名的文件名。

您可以将"exampleFile.txt"替换为您自己的文件名字符串,以从其他文件名中删除扩展名。

使用explode() 和 implode() 函数

使用explode() 和 implode() 函数是从 PHP 字符串中删除扩展名的另一种方法。以下是示例:

<?php
   $filename = 'exampleFile.txt';
   $parts = explode('.', $filename);
   array_pop($parts);
   $filenameWithoutExtension = implode('.', $parts);
?>

在此方法中,explode() 用于根据点 (.) 分隔符将文件名字符串拆分为一个数组。这将创建一个数组,其中每个元素代表文件名的一部分。然后,使用 array_pop() 从数组中删除最后一个元素,该元素对应于文件扩展名。最后,使用 implode() 将文件名的剩余部分使用点 (.) 分隔符重新连接在一起。

在上面的示例中,变量 $filenameWithoutExtension 将保存值"example",即不带扩展名的文件名。

您可以将"exampleFile.txt"替换为您自己的文件名字符串,以从其他文件名中删除扩展名。

使用正则表达式 (regex)

使用正则表达式 (regex) 是从 PHP 字符串中删除扩展名的另一种方法。以下是一个例子:

<?php
   $filename = 'exampleFile.txt';
   $filenameWithoutExtension = preg_replace('/\.[^.]+$/', '', $filename);
?>

在此方法中,preg_replace() 函数与正则表达式模式结合使用,匹配文件扩展名并将其替换为空字符串。模式 /\.[^.]+$/ 匹配一个点 (.),后跟一个或多个非点字符(非贪婪),直到字符串末尾。

在上面的示例中,变量 $filenameWithoutExtension 将保存值"example",即不带扩展名的文件名。

您可以将"exampleFile.txt"替换为您自己的文件名字符串,以从其他文件名中删除扩展名。

注意:正则表达式提供了一种灵活的匹配和操作字符串的方法,但它们需要一些正则表达式语法知识。请确保处理特殊情况并根据需要调整模式以满足您的特定需求。

结论

每种方法都有其优势,可能适合具体场景和个人偏好。在选择适当的方法删除 PHP 中的文件扩展名时,处理边缘情况并考虑性能、文件名变化和要求等因素非常重要。


相关文章