Do While循环 - 生成文件名并检查文件是否存在

时间:2011-03-02 13:31:32

标签: php while-loop

我需要能够执行一个生成文件名的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不会引发任何错误。

2 个答案:

答案 0 :(得分:10)

只要文件存在,就应该运行你的循环,只要它不存在就会运行(如果你有一个唯一的文件名,这将永远存在)。将其改为

} while(file_exists($filename));

答案 1 :(得分:1)

这是错误的做法。您应该使用一个确保以原子方式创建文件的函数。

php有tempnam