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

Far*_*her 33 php file-io file path

我这样做之后:

$temp = tmpfile();
fwrite($temp, "writing to tempfile");
Run Code Online (Sandbox Code Playgroud)

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

我需要做些什么来获取这些信息?

bis*_*hop 53

tmpfile 返回一个可流的文件指针.

要获取相应的路径,请向流询问其元数据:

$file = tmpfile();
$path = stream_get_meta_data($file)['uri']; // eg: /tmp/phpFx0513a
Run Code Online (Sandbox Code Playgroud)

这种tmpfile方法的好处是什么?PHP自动删除$path时,$file超出范围.使用tempnam,您必须手动删除创建的文件.


Ali*_*xel 30

$path = tempnam(sys_get_temp_dir(), 'prefix');
Run Code Online (Sandbox Code Playgroud)

这个例子.

  • 在原始代码中,当脚本退出/崩溃时,将删除该文件.这个留下垃圾.请参阅@ bishop的答案以获得正确的解决方案. (4认同)