10

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

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

伪代码:

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

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

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

编辑

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

4

1 回答 1

9

php://temp并且php://memory每个进程都是唯一的。您不必担心两个进程试图同时使用相同的内存。

于 2013-09-26T18:35:45.983 回答