min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

PHP preg_match() の正規表現(ps auxのPIDをキャプチャ成功)

 

HandBrakeで圧縮しているプロセスの

 PID:7705

 ファイル名:20160104_205901_cron.ts

だとして、

 PIDファイル名を並べた文字列「7705 20160104_205901_cron.ts」

まではbashで切り出せた。

ーーー

これを、PHPpreg_match()で配列m[ ]の中にキャプチャして、kill -9 $[m2]にして、録画停止に使いたい。このキャプチャにえらく苦労したが、成功した。

 正規表現/(\s*\d+)\s(.*)/

 文字列:7705 20160104_205901_cron.ts

 結果:以下のとおり。

PIDを$m[1]に、ファイル名を$m[2]にキャプチャできている

一致しました。
preg_match('/(\s*\d+)\s(.*)/', '7705 20160104_205901_cron.ts', $m); 
の結果は以下の通りです。
$m[0] = 7705 20160104_205901_cron.ts
$m[1] = 7705
$m[2] = 20160104_205901_cron.ts

サイト 

http://okumocchi.jp/php/re.php

での表示は以下。

f:id:min117:20160130114714p:plain

これで、PHPソースからbashを呼んで

$ kill -9 $m[2]

みたいにすれば、HandBrakeプロセスを殺せる。録画停止ソース書く。