2016-02-29 162 views
0

我希望能夠使用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 

回答

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',否則返回增加的值。

+0

感謝您的迴應。
如果不存在,您的建議會添加_1後綴。
FILENAME.TXT成爲filename_1.txt
然而
隨後與
filename_1.txt文件結果的重命名成爲filename_2_1.txt
user3117340

+0

對不起,我不知道如何添加格式的註釋 – user3117340

+0

@ user3117340:的確,您只需要將極限參數設置爲1,請參閱編輯。 –