PHP。
shell_exec()とか、exec()とか、ズルはしない。
ちゃんとpopen()したポインタをゴリゴリ読んでこそと思い。いろいろつまずく。
ーーー
まず、127行目のprint文が実行されずに困った。
120行目のif文で、ポインタ$handle0に値が入っていないとみた。
117行目のpopen()内部で、
& を付けてrecpt1をバックグラウンド実行しているからか?
それとも、標準出力を /dev/null に捨てているからか?
試しに、118行目にprint文を入れて$handle0を覗いてみる。
やはり、$handle0にリソースが返ってきていない。
ブラウザ出力結果が
てなっちゃう。
いや待てよ、そもそもポインタをprint文で表示しようとしてるのがアホなのか?
専用の関数があるのか?
いずれにしても、120行目のif文の中に入ってるかどうか調べないといけない。
if文直後の121行目にprint文を追加。
さっそくブラウザから実行してみると
if($handle0)文は、開始してる。
$handle にポインタは返ってきているらしい。120行目のif文は原因じゃなかった。
てことは、原因は125行目のif文か。
preg_match()の正規表現の条件が違うらしい。
preg_match('/¥s*(¥d+)/', $buffer, $m)
$buffer から文字列を探す s*(¥d) をやった結果が$mに配列で入る(ハズ)。
中身を見てみる。
127行目にprint文を入れ、
128行目に var_dump($m); を入れて録画実行してみる。
現状、
pidが 10323 (チューナー6)と
pidが 29081 (チューナー7)の
の、2つのrecpt1プロセスが起動している。
これにさらに録画実行する。チューナー2 を使う。
結果、pidは3つになるから、配列 $m[] にpidが3つ入ってくれば成功。
チューナ2 を指定して、録画formからsubmit実行。
結果。
あれ?127行目のprintの出力が無い。
やはり125行目のif文が成立していないのか?