За последние 24 часа нас посетили 20856 программистов и 1136 роботов. Сейчас ищет 381 программист ...

Чтение программного канала №3

Тема в разделе "PHP для профи", создана пользователем Novascriptum, 21 окт 2018.

  1. Novascriptum

    Novascriptum Активный пользователь

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

    Пробовал вот так:
    PHP:
    1. $streamId = fopen('php://3', 'r');
    ...но это приводит к ошибке.
    Есть ли какой-нибудь способ прочитать этот канал?
     
  2. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
  3. Novascriptum

    Novascriptum Активный пользователь

    С нами с:
    27 окт 2013
    Сообщения:
    3
    Симпатии:
    0
    Ооо, спасибо тебе, милый человек! Как раз там есть про обращение к нужному дескриптору. Похоже, именно то, что нужно.