PHP 创建随机 tmp 文件并获取其完整路径

Posted

技术标签:

【中文标题】PHP 创建随机 tmp 文件并获取其完整路径【英文标题】:PHP create random tmp file and get its full path 【发布时间】:2013-05-05 10:10:13 【问题描述】:

之后:

$temp = tmpfile();
fwrite($temp, "writing to tempfile");

我想获得tmpfile 创建的$temp 文件的完整路径。

我需要做什么才能获得这些信息?

【问题讨论】:

【参考方案1】:

tmpfile 返回一个可流式传输的文件指针。

获取对应路径,ask the stream for its meta data:

$file = tmpfile();
$path = stream_get_meta_data($file)['uri']; // eg: /tmp/phpFx0513a

tmpfile 方法的好处?当$file 超出范围时,PHP 会自动删除$path。使用tempnam,您必须手动删除创建的文件。

【讨论】:

【参考方案2】:
$path = tempnam(sys_get_temp_dir(), 'prefix');

见this example。

【讨论】:

在原始代码中,当脚本退出/崩溃时文件被删除。这个留下垃圾。请参阅@bishop 的答案以获得正确的解决方案。 Windows 平台不考虑目录的第一个参数。它总是使用 C:\Windows\Temp\.

以上是关于PHP 创建随机 tmp 文件并获取其完整路径的主要内容,如果未能解决你的问题,请参考以下文章

PHP 从名称或完整路径获取文件扩展名

PHP 文件名(或其完整路径中的目录)可以包含 UTF-8 字符吗?

如何获取执行文件的完整路径? [复制]

获取资产文件夹的完整路径

如何使用 SELECT INTO OUTFILE 写入 /tmp 以外的目录?

C#比较基于名称未返回完整路径的文件列表