問題 あるコマンドを、phpで、proc_open()して、stream_get_contents()しようとしてるのですが、 コマンドの処理は終わった様子なのに、phpがいつまでも終わりません。 何が起きてるんでしょう。 答え phpで標準出力も標準エラーも全部受け取るようにしていると、 標準出力や標準エラー出力のバッファがいっぱいになって固まることがあるらしいです。 対策1 エラー出力をそもそも出さない 実行しようとしているコマンドがエラー出力をやたらとおこなう場合、コマンドのオプションでエラー出力を抑制できるなら、抑制するとよい。 –verbose とか –quiet など指定できる場合がある(コマンドによる)。 command --quiet 対策2 エラー出力をファイルに逃がす 以下のようにすると固まるので、 $proc = proc_open($cmd, array( 0 =>
![【php】proc_open()からのstream_get_contents()で処理が固まる場合 at softelメモ](https://cdn-ak-scissors.b.st-hatena.com/image/square/259f6284f52611feb5d369214bb67197662322f2/height=288;version=1;width=512/https%3A%2F%2Fwww.softel.co.jp%2Fblogs%2Ftech%2Fwordpress%2Fwp-content%2Fuploads%2F2014%2F05%2Fphp-logo.png)