2017-09-02 83 views
1

與PHP我怎麼能通過在路徑末尾添加額外的數字(不添加像uniqid(),加密,蘭特等隨機characther)唯一的文件名,但通過代碼程序,請嘗試通過添加+1 NUMBER捕獲唯一的文件名。PHP獲取唯一的文件名,如果文件存在添加數字並重試直到獲得唯一

MAYBE

in my './image_folder/' dir have this path. 
-my-path.jpg 
-my-path-1.jpg 
-my-path-2.jpg 
-my-other-path-name.jpg 
// try to get my-path-3.jpg 
-my-path.jpeg 
-my-path-1.jpeg 
$filename = 'my-path.jpg'; 
if(filename_exists('./image_folder/' . $filename ){ 
/*this file name already exists in this dir. how to get my-path-3.jpg (3 is according to adding +1 number untill get unique file name */ 
} else { 
#this file name not exists, there's no problerm here 
} 
+0

您可能需要根據文件類型和文件名對文件進行排序,從排序列表中獲取最後一個文件名並將1添加到該文件名。 –

回答

0

爲什麼不使用一個循環和測試,如果文件存在?

$filename = 'my-path.jpg'; 
$folder = './image_folder/'; 
$unique = $folder . $filename; 
if (file_exists($unique)) { 
    preg_match('~(.*)\.([^\.]+)~', $filename, $m); 
    $i = 1; 
    while (file_exists($unique = $folder . $m[1] . '-' . $i . '.' . $m[2])) { 
     $i++; 
    } 
} 
// now $unique contains an non existing filename