我希望能够使用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
答案 0 :(得分:0)
也许这样(未经测试):
if(file_exists($fileName)) {
$fileNewName = preg_replace_callback('/(?:(?<=_)\d+)?(?=\.[^.]*$)/',
function ($m) { return empty($m[0]) ? '_1' : ++$m[0]; },
$fileName, 1);
}
简而言之,您将开头设为可选(?:(?<=_)\d+)?
,并确保该点是最后一个(?=\.[^.]*$)
。
当$m[0]
为空时使用三元运算符,返回'_1',否则增加值。