是php:// temp生产安全吗?

时间:2013-09-23 18:13:35

标签: php thread-safety

我有一个场景,我想重新使用现有的类来编译系统中的更改。现有库采用文件指针,该指针将存储更改以供后续使用。当前方案涉及执行这些计算,然后立即将响应输出到输出。

在两个独立用户可能同时运行此方法的环境中使用php:// temp或php://内存资源是否安全?

的伪代码:

$fp = fopen('php://temp','w+');
Lib::getUpdates($fp, $user_id);
rewind($fp);
$changes = stream_get_contents($fp);

我一直在谷歌搜索并发现了一些令人不安的结果,但没有真正确定使用临时或内存流。

所以问题是,我应该分解并使用一个临时文件来保证这不是问题吗?我想尽可能避免写入磁盘。另一种可能性是改变类,以便它可以将结果输出到字符串,但我想在可能的情况下避免使用它。

修改

根据Sammitch的说法,这没关系。见下面的评论。

1 个答案:

答案 0 :(得分:8)

php://tempphp://memory是每个进程的唯一身份。您不必担心两个进程同时尝试使用相同的内存。