将文件写入临时位置

use*_*124 5 php

我需要将文件作为PHP脚本的一部分(带有自定义文件扩展名的XML内容)编写,然后将文件保存到然后将其附加到我将使用PHP Mailer发送的电子邮件中.

电子邮件部分很好但我以前从来没有用PHP编写文件.该文件仅在脚本持续时间内需要,不需要永久保存.

如何将文件写入临时位置?

完成文件后是否需要清理临时位置?如果是这样,怎么样?

rdl*_*rey 20

为了避免使用磁盘上的实际文件进行写 - 读 - 删除循环,我会使用php的内置php://temp和php://memory IO流包装器文档将所有临时"文件"数据保存在内存中.

// open a temporary file handle in memory
$tmp_handle = fopen('php://temp', 'r+');
fwrite($tmp_handle, 'my awesome text to be emailed');

// do some more stuff, then when you want the contents of your "file"
rewind($tmp_handle);
$file_contents = stream_get_contents($tmp_handle);

// clean up your temporary storage handle
fclose($tmp_handle);
Run Code Online (Sandbox Code Playgroud)

您永远不必将文件写入或删除到磁盘.另外,请注意使用php://temp和php://memory来自主题的文档之间的区别:

php:// memory和php:// temp是读写流,允许临时数据存储在类似文件的包装器中.两者之间的唯一区别是php://内存将始终将其数据存储在内存中,而一旦存储的数据量达到预定义的限制(默认值为2 MB),php:// temp将使用临时文件.此临时文件的位置以与sys_get_temp_dir()函数相同的方式确定.


小智 5

函数tmpfile — 创建一个临时文件

在读写 (w+) 模式下创建一个具有唯一名称的临时文件并返回一个文件句柄。

该文件在关闭时(使用 fclose())或脚本结束时自动删除。

PHP 手册:文件系统