我过去曾使用uniqid()生成唯一的文件名,但实际上并未创建该文件。
$filename = uniqid(rand(), true) . '.pdf';
第一个参数可以是您想要的任何参数,但是我在这里使用rand()使其更加随机。使用设置的前缀,您可以进一步避免与系统中的其他临时文件冲突。
$filename = uniqid('MyApp', true) . '.pdf';
从那里,您只需创建文件。如果其他所有方法均失败,则将其置于while循环中并继续生成它,直到获得可行的为止。
while (true) {
$filename = uniqid('MyApp', true) . '.pdf';
if (!file_exists(sys_get_temp_dir() . $filename)) break;
}