10

既存のクラスを再利用してシステムの変更をコンパイルするシナリオがあります。既存のライブラリは、後で使用するために変更を格納するファイル ポインターを受け取ります。現在のシナリオでは、これらの計算を実行し、すぐに出力への応答を出力します。

2 人の別々のユーザーが同時にこのメソッドを実行する可能性がある環境で php://temp または php://memory リソースを使用することは安全でしょうか?

擬似コード:

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

私はグーグルで調べていて、いくつかの不安な結果を見つけましたが、一時またはメモリストリームの使用について本当に決定的なものは何もありません.

問題は、これが問題ではないことを保証する一時ファイルを分解して使用する必要があるかどうかです。できればディスクへの書き込みは避けたいです。もう1つの可能性は、結果を文字列に出力できるようにクラスを変更することですが、可能であればそれも避けたいと思います。

編集

Sammitch によると、これで問題ありません。以下のコメントを参照してください。

4

1 に答える 1

9

php://tempphp://memoryプロセスごとに一意です。2 つのプロセスが同時に同じメモリを使用しようとすることを心配する必要はありません。

于 2013-09-26T18:35:45.983 に答える