php - 是 php ://temp safe for production?

标签 php thread-safety

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

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

伪代码:

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

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

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

编辑

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

最佳答案

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

关于php - 是 php ://temp safe for production?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18966034/

相关文章:

javascript - 如何将html中span的值传递给其他页面

php - 如何在Elasticsearch中调整相关性

javascript - 推手 : No callbacks on testChannel for App\Events\Event

php - 如何通过 Google map 地理定位或其他方式获取以某点为中心的 X 英里半径的纬度/经度坐标?

java - 为什么 EJB 是线程安全的而 servlet 不是?

java - 调用notifyAll时出现IllegalMonitorStateException

c++ - 在以下情况下,当 cond 为真时,锁会发生什么情况?

c# - 非线程安全单例的危险是什么?

php - symfony createQueryBuilder Sql 查询

java - Java的事前关系?