如何在 PHP 中移除字符串的后缀名


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

PHP 主要用于开发动态网页和 Web 应用程序。它允许开发人员在 HTML 中嵌入 PHP 代码,从而轻松地将服务器端逻辑与表示层混合。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 中移除文件扩展名的合适方法时,务必处理边缘情况并考虑性能、文件名变化和需求等因素。

更新时间: 2023年8月1日

1K+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.