【问题标题】:Using str_replace() to replace two types of filenames [duplicate]使用 str_replace() 替换两种类型的文件名 [重复]
【发布时间】:2016-10-07 00:00:06
【问题描述】:

我知道我可以像这样将文件名从 .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(['.xls', '.xlsx'], '.csv', $string);

标签: php str-replace


【解决方案1】:

您可以将数组传递给str_replace

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

【讨论】:

    【解决方案2】:

    很简单:

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

    【讨论】:

      【解决方案3】:

      我评论使用数组,如:

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

      【讨论】:

        【解决方案4】:

        使用preg_replace

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

        【讨论】:

          猜你喜欢
          • 2012-01-03
          • 1970-01-01
          • 2016-09-27
          • 2011-08-25
          • 1970-01-01
          • 2018-08-30
          • 1970-01-01
          • 1970-01-01
          • 2011-10-03
          相关资源
          最近更新 更多