Генерация уникального имени файла

При разработке часто приходится генерировать множество файлов, как временных, так и постоянных - рабочих. И не редко в связи с этим может возникнуть конфликты при создании файлов, поскольку имена могут совпадать. Чтобы решить эту проблему, можно перед созданием файла, проверять наличие такого имени. И если название уже существует, то приписывать к имени файла префикс, например, так: “123_file_name.txt”.

Пример:
// пример использования 
print_r(getUniqName('./files/', 'test_file.txt')); 
// при существовании test_file.txt  
// результат будет - 1_test_file.txt 
 
/** 
* Получение уникального имени для файла 
* 
* @param string $path - путь к папке,  
* где будет проверка 
* 
* @param string $fileName - исходное имя файла 
* 
* @return string - уникальное имя файла 
*/ 
function getUniqName($path, $fileName){     
  $num = 1; // счетчик 
  // проверяем, существует ли файл с таким именем 
  if(file_exists($path . $fileName)) {    
    // добавляем префикс и проверяем  
    // наличие файла с таким именем 
    while(file_exists($path.$num.'_'.$fileName)){ 
      $num ++; 
    }   
    return $num . '_' . $fileName; 
  }else{ 
    return $fileName; 
  } 
}


В этом примере была использована, ранее не описанная функция - file_exists, она осуществляет проверку существования файла.
Теги:
file_exists
Добавлено: 30 Марта 2018 06:39:07 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...