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

时间:2016-06-07 07:41:39

标签: php str-replace

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

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

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

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

我的问题是,如果我的文件名为.csv.xlsx,我怎样才能将我的文件名转换为.xls?这意味着,“将文件名更改为.csv,如果它是.xls或xlsx在一个单独的(如果可能的话)str_replace

我尝试使用双str_replace但没有运气:

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

提前致谢。

4 个答案:

答案 0 :(得分:4)

您可以将数组传递给str_replace

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

答案 1 :(得分:4)

我评论使用数组:

$pfilename = "hello.xlsx";

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

答案 2 :(得分:3)

很简单:

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

答案 3 :(得分:3)

使用preg_replace

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