我需要将一些文件转换为 PDF,然后将它们附加到电子邮件中。我在电子邮件方面使用 Pear Mail,这很好(大多数情况下仍在解决一些问题),但作为此过程的一部分,我需要创建临时文件。现在我可以使用临时南()函数,但听起来它在文件系统上创建了一个文件,这不是我想要的。
我只想要临时文件系统中的一个名称(使用sys_get_temp_dir())不会与运行同一用户的同一脚本的其他人多次调用该脚本发生冲突。
建议?
我过去曾使用 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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)