当前位置: 首页 > 面试题库 >

PHP中的唯一和临时文件名?

岳君之
2023-03-14
问题内容

我需要将一些文件转换为PDF,然后将它们附加到电子邮件中。我将Pear Mail用于其电子邮件方面,这很好(大多数情况下-
仍在解决一些问题),但是作为此过程的一部分,我需要创建临时文件。现在我可以使用tempnam()函数,但听起来好像它在文件系统上创建了一个文件,这不是我想要的。

我只想要临时文件系统中的名称(使用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;
}


 类似资料:
  • 据我所知,Herokus Ephemeral文件系统只允许您写入临时文件夹。当停止或重新启动创建文件的测功机时,该文件夹中创建的文件将被丢弃。 我不明白的是,如果dyno没有停止或重新启动会发生什么?一段时间后,文件还会被丢弃吗? 我们目前正在构建一个系统,该系统可以生成pdf文件并通过邮件转发(或者您可以下载该文件)。在发送/下载pdf文件后,我是否需要自己删除它们,或者我可以依靠Heroku自

  • 一、简介: 尽管SQLite的数据库是由单一文件构成,然而事实上在SQLite运行时却存在着一些隐含的临时文件,这些临时文件是出于不同的目的而存在的,对于开发者而言,它们是透明的,因此在开发的过程中我们并不需要关注它们的存在。尽管如此,如果能对这些临时文件的产生机制和应用场景有着很好的理解,那么对我们今后应用程序的优化和维护都是极有帮助的。在SQLite中主要产生以下七种临时文件,如: 1). 回

  • 问题 你需要在程序执行时创建一个临时文件或目录,并希望使用完之后可以自动销毁掉。 解决方案 tempfile 模块中有很多的函数可以完成这任务。 为了创建一个匿名的临时文件,可以使用 tempfile.TemporaryFile : from tempfile import TemporaryFile with TemporaryFile('w+t') as f: # Read/writ

  • 问题内容: 在node.js中,如何生成唯一的临时文件名la ?我想使用原子地写入文件。 问题答案: 也许与此同时您已经找到了节点临时节点。

  • tempfile 模块专门用于创建临时文件和临时目录,它既可以在 UNIX 平台上运行良好,也可以在 Windows 平台上运行良好。 tempfile 模块中常用的函数,如表 1 所示。 表 1 tempfile 模块常用函数及功能 tempfile 模块函数 功能描述 tempfile.TemporaryFile(mode='w+b', buffering=None, encoding=Non

  • 临时文件 # tempfile_TemporaryFile.py import os import tempfile print('Building a filename with PID:') filename = '/tmp/guess_my_name.{}.txt'.format(os.getpid()) with open(filename, 'w+b') as temp: pr