Чтение вывода из команды Python в веб-приложении PHP

Я пытаюсь прочитать вывод Python из PHP-приложения.

я использую $out = shell_exec("./mytest") в коде php, чтобы запустить приложение, и sys.exit("returnvalue") в приложении Python для возврата значения.

Проблема в том, что $out не содержит моего возвращаемого значения.
Вместо этого, если я попробую с $out = shell_exec("ls"), $out переменная содержит вывод ls команда.

Если я бегу ./mytest из терминала он работает, и я вижу вывод на моем терминале.

1

Решение

sys.exit("returnvalue")

Используя строку с sys.exit используется для указания значения ошибки. Так это покажет returnvalue в stderrне stdout, shell_exec() только захватывает stdout по умолчанию.

Вы, вероятно, хотите использовать это в своем коде Python:

print("returnvalue")
sys.exit(0)

В качестве альтернативы, вы также можете использовать это в своем PHP-коде для перенаправления stderr в stdout,

$out = shell_exec("./mytest 2>&1");

(На самом деле, делая и то и другое вероятно лучше, так как имея stderr исчезновение может быть довольно запутанным, если случится что-то неожиданное).

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]