Всем доброго времени. Использую proc_open для запуска своего php-скрипта:
$cmd = 'php -d mbstring.func_overload=0 "/path/to/script.php';
$procId = proc_open($cmd, array(3 => array('pipe', 'r')), $pipes);
$paramStreamId = $pipes[3];
fwrite($paramStreamId, "Line1\r\n");
fwrite($paramStreamId, "Line2\r\n");
fclose($paramStreamId);
proc_close($procId);
Вроде использовать №3 можно, так как в документации сказано:
Номера дескрипторов не ограничены только 0, 1 и 2 - вы можете назначить любой действительный номер дескриптора и он будет передан дочернему процессу.
Теперь вопрос, как в запускаемом таким образом скрипте обратиться к каналу №3 (в который передаются Line1 и Line2). Стандартный ввод (канал №0) мне не подходит, потому что туда будут идти данные, а в канал №3 хочу передавать служебные параметры (вроде паролей), которые нужны для работы скрипта.
Пробовал вот так:
$streamId = fopen('php://3', 'r');