Linux では、PHP から gnome zenity プログレス バー ウィンドウを実行したいと考えています。Zenity の仕組みは次のとおりです。
linux-shell$ zenity --display 0:1 --progress --text='Backing up' --percentage=0
10
50
100
したがって、最初のコマンドは zenity プログレス バーを 0% で開きます。次に、Zenity は標準入力数値をプログレス バーのパーセンテージとして受け取ります (したがって、それらの数値を入力すると、10% から 50% から 100% になります)。
PHPにこれらの数字を入力させる方法がわかりませんが、試しました:
exec($cmd);
echo 10;
echo 50;
と:
$handle = popen( $cmd, 'w' );
fwrite( $handle, 10 );
と:
$descriptorspec = array(
0 => array("pipe", "r"), // stdin is a pipe that the child will read from
1 => array("pipe", "w") // stdout is a pipe that the child will write to
);
$h = proc_open($cmd, $descriptorspec, $pipes);
fwrite($pipes[1], 10);
しかし、どれも進行状況バーを更新しません。Linux シェルで stdin の効果をどのように模倣して、zenity に進行状況バーを更新させることができますか?