Intereting Posts
Удаление повторяющихся элементов из массива Отправить форму – Предотвращение перезагрузки страницы jQuery Бесплатная библиотека входа PHP PHP session_start (); не работает, когда инициируется в верхней части страницы Используя PHP, как я могу проверить строку для шаблона, а затем изменить ее? Создание случайных результатов по весу в PHP? Обнаруживать, если изображение полутоновое или цветное, используя Imagick Установка нескольких локалей на одной странице Как написать или найти расширение PHP для Apache Thrift PHP: запрос дублирования запросов MySQL без причины Многомерный массив массивов PHP Не работает массив array_reverse? Как отправить сообщение от WhatsApp в PHP с помощью WhatsAPI Official? проверка доступности пользователя с помощью jQuery Как читать переменные $ _GET с (mod rewrite powered) nice URLs Сохранение моего верхнего и нижнего колонтитула на всех веб-страницах?

Как увеличить имя файла в php для предотвращения дублирования

Во многих ситуациях нам необходимо сделать имя файла другим на сервере при их создании для предотвращения дублирования. И наиболее распространенным ответом на это кажется: добавьте отметку времени в конец или сохраните имя файла в db и используйте эти сохраненные значения для вычисления нового имени. Это хорошо и все, но добавление длинного штампа не всегда очень удобно, а хранение в db не всегда является опцией. Итак, как мы можем автоматически увеличивать стандартное имя файла при создании его через php?

Solutions Collecting From Web of "Как увеличить имя файла в php для предотвращения дублирования"

Вот простую функцию, которую я написал для этой цели:

function incrementFileName($file_path,$filename){ if(count(glob($file_path.$filename))>0) { $file_ext = end(explode(".", $filename)); $file_name = str_replace(('.'.$file_ext),"",$filename); $newfilename = $file_name.'_'.count(glob($file_path."$file_name*.$file_ext")).'.'.$file_ext; return $newfilename; } else { return $filename; } } 

ПРИМЕНЕНИЕ:

 $newName = incrementFileName( "uploads/", $_FILES["my_file"]["name"] ); move_uploaded_file($_FILES["my_file"]["tmp_name"],"uploads/".$newName); 

Все эти ответы кажутся излишними:

 $k = 0; while(!$result){ if(!file_exists("file[$k].ext")) $result = "file[$k].ext"; $k++; } makefile($result); в $k = 0; while(!$result){ if(!file_exists("file[$k].ext")) $result = "file[$k].ext"; $k++; } makefile($result); 
 function incrementFileName($file_path,$filename){ $array = explode(".", $filename); $file_ext = end($array); $root_name = str_replace(('.'.$file_ext),"",$filename); $file = $file_path.$filename; $i = 1; while(file_exists($file)){ $file = $file_path.$root_name.$i.'.'.$file_ext; $i++; } return $file; } в function incrementFileName($file_path,$filename){ $array = explode(".", $filename); $file_ext = end($array); $root_name = str_replace(('.'.$file_ext),"",$filename); $file = $file_path.$filename; $i = 1; while(file_exists($file)){ $file = $file_path.$root_name.$i.'.'.$file_ext; $i++; } return $file; }