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

Генерация уникального имени файлаВ этой статье я приведу пример генерации уникального имени файла средствами php. Пример короткий, но может быть полезным. Смысл кода заключается в том, чтобы проверить существование имени файла и при существовании такого имени приписать к названию префикс. Выглядеть это будет примерно так: при существовании файла name.txt будет создано имя 1_name.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;
    }
}

И пример использования:

// пример использования
print_r (getUniqName('./files/', 'test_file.png'));
// при существовании test_file.png результат будет - 1_test_file.png
Рассказать друзьям:


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

  1. Отличный подход. Я помню делал подобное, только индекс ставил в конце имени файла перед точкой. За счет этого мы получаем красивую структуру файлов в каталоге, то есть все отсортировано по имени правильно.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*