我需要能够执行一个生成文件名的while循环,并检查目录中是否存在该文件名,然后继续使用该脚本,例如
do {
$filename = random(18) . $fileEx;
} while(!file_exists($filename));
$move_file = move_uploaded_file($request_file['tmp_name'][$i], 'files/' . $filename);
if($move_file)
{
// ...
但是当我这样做时,它只会进入一个无限循环 - 使用E_ALL
不会引发任何错误。
答案 0 :(得分:10)
只要文件存在,就应该运行你的循环,只要它不存在就会运行(如果你有一个唯一的文件名,这将永远存在)。将其改为
} while(file_exists($filename));
答案 1 :(得分:1)
这是错误的做法。您应该使用一个确保以原子方式创建文件的函数。
php有tempnam