В Linux я хочу запустить окно прогресса гнома zenity из PHP. Как работает 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);
Но никто из них не обновляет индикатор выполнения. Каким образом я могу имитировать влияние stdin на оболочку linux, чтобы zenity обновил свой индикатор выполнения?