Запись в stdin из PHP?

В Linux я хочу запустить окно индикатора прогресса gnome 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 обновлял индикатор выполнения?

6
задан hamstar 26 March 2011 в 15:20
поделиться