Как избежать дублирования при сохранении файла с помощью php - PullRequest
0 голосов
/ 16 сентября 2011

Чтобы сделать имя файла уникальным, я использую этот код, чтобы добавить уникальный идентификатор в конце имени файла:

if (!file_exists("data/$filename")) {$savingfile=$filename;} else {$savingfile="$filename-2";}

Этот метод отлично работает, но каков простой способ продолжить этот цикл, если«$ filename-2» существует, сохранить его как «$ savefile-3» и т. д. (чтобы найти несуществующее имя файла)?

Ответы [ 3 ]

3 голосов
/ 16 сентября 2011
$savingfile = $filename;
$i = 0;
while(file_exists($savingfile)) {
    $savingfile = $filename . '-' . ++$i;
}
0 голосов
/ 16 сентября 2011

Лично я бы просто использовал tmpnam , который является встроенной функцией PHP, для создания файла с уникальным именем.

0 голосов
/ 16 сентября 2011

Вы можете попробовать использовать счетчик, вычислить имя файла и проверить, существует ли он.

Другой подход - сохранить где-то последнее значение, а когда вам нужно создать другой файл, просто увеличьте его, используйте и сохраните снова.

...