繁体   English   中英

使用PHP重命名文件

[英]Rename files using PHP

我希望能够使用PHP重命名文件。

以下脚本检查新名称是否存在。 如果确实如此(并且包括后缀),则后缀将增加。

if(file_exists($fileName)) {
        $fileNewName= preg_replace_callback('/(?<=_)\d+(?=\.)/',                   
         function ($m) { return ++$m[0]; },
         $fileName);
 }

但是,如果文件不包含后缀,则不会将任何内容添加到文件中。

例:

filename_1.txt  becomes  filename_2.txt
however
filename.txt is not renamed.

您能帮我添加后缀(_1)是不存在后缀的吗? 例:

filename.txt becomes filename_1.txt

也许像这样(未经测试):

if(file_exists($fileName)) {
    $fileNewName = preg_replace_callback('/(?:(?<=_)\d+)?(?=\.[^.]*$)/',                   
        function ($m) { return empty($m[0]) ? '_1' : ++$m[0]; },
         $fileName, 1);
}

简而言之,您将开头设为可选(?:(?<=_)\\d+)? 并确保该点是最后一个(?=\\.[^.]*$) $m[0]为空时,使用三元运算符,则返回“ _1”,否则返回增量值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM