2013-09-23 7 views
9

私は、既存のクラスを再利用してシステムの変更をコンパイルするシナリオを持っています。既存のライブラリは、その後の使用のために変更を保存するファイルポインタを取得します。現在のシナリオでは、これらの計算を実行してからすぐに出力への応答を出力します。php:// tempは安全ですか?

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

擬似コード:

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

私の周りグーグルされ、いくつかの不安の結果が、一時またはメモリストリームを使用してについて本当に決定的何を発見しました。

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

編集

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

+5

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

+0

素晴らしいです。ありがとう。 – Rhinosaurus

+0

とにかく 'php:// temp'は一時的なファイルを透過的に使用すると思います – Izkata

答えて

8

php://tempおよびphp://memoryはプロセスごとに固有です。同じメモリを同時に使用しようとする2つのプロセスについて心配する必要はありません。

関連する問題