Николай83
Новичок
Здравствуйте.
Есть метод:
В нём выполняются команды вида openssl.... Проблема в том, что в одном окружении все Ок, а на другом переменная $error всегда пустая, даже если ошибка (если ошибка, то текст ошибки оказывается в $result. Т.е. метод работает не как ожидалось).
Не подскажете в чём дело? Спасибо.
Есть метод:
Код:
private function run($cmd, $input) : string
{
$descriptorspec = [
0 => ["pipe", "r"],
1 => ["pipe", "w"],
2 => ["pipe", "w"]
];
$process = proc_open($cmd, $descriptorspec, $pipes);
if (is_resource($process)) {
fwrite($pipes[0], $input);
fclose($pipes[0]);
$result = stream_get_contents($pipes[1]);
fclose($pipes[1]);
$error = stream_get_contents($pipes[2]);
fclose($pipes[2]);
proc_close($process);
if (!empty($error)) {
throw new SslCertificateException($error);
}
return $result;
}
return null;
}
Не подскажете в чём дело? Спасибо.