Я использую proc_open для запуска сеанса telnet, подключающегося к серверной программе. Соединение в порядке, но когда я получаю ответ, я не могу сохранить целую строку в файле, поскольку она вырезана после некоторых символов.Захват вывода консоли из proc_open
Вот мой сниппет:
$descriptorSpec = array(0 => array("pipe", "r"),
1.=> array("file", $logPath, "w"));
$process = proc_open("telnet localhost 2323", $descriptorSpec, $pipes);
fwrite($pipes[0], "helo" . PHP_EOL);
fwrite($pipes[0], "quit" . PHP_EOL);
Я также попытался с помощью Netcat и Exec:
exec("echo \"helo quit\" | netcat localhost 2323 >> $logPath");
, но у меня был тот же самый результат.
Если я запускаю команду telnet/netcat с консоли, я получаю целую строку на stdout, но если я попытаюсь перенаправить ее в другой файл, я получаю ту же проблему, что и выше.
Вы не отвечаете на вопрос - * как написать ответ на файл *. Сосредоточьтесь на этой части, чтобы дать полезный ответ. –