使用 str_replace() 替换两种类型的文件名

Using str_replace() to replace two types of filenames

我知道我可以将文件名从 .xlsx 转换为 .csv,如下所示:

$pFileName = "hello.xlsx"
str_replace(".xlsx", ".csv", $pFileName);

... 并将 .xls 转换为 .csv,如下所示:

$pFileName = "hello.xls"
str_replace(".xls", ".csv", $pFileName);

我的问题是,如果我的文件名是 .xlsx.xls,我如何创建一个函数将我的文件名转换为 .csv?这意味着,“如果文件名是 .xls 或 xlsx,则将文件名更改为 .csv(如果可能的话)str_replace

我试过双 str_replace 但没有成功:

str_replace(str_replace(".xlsx", ".csv", $pFileName), ".csv", $pFileName)

提前致谢。

您可以将数组传递给 str_replace:

str_replace([".xlsx", ".xls"], ".csv", $pFileName)

很简单:

str_replace(array(".xlsx", ".xls"), ".csv", $pfilename);

我评论使用数组,如:

$pfilename = "hello.xlsx";

$arr = array(".xlsx", ".xls");
echo str_replace($arr, ".csv", $pfilename); // hello.csv

使用preg_replace

$pFileName = "hello.xls";
echo $filename = preg_replace('"\.(xls|xlsx)$"', '.csv', $pFileName);