Что такое возвращаемое значение PHP exec ()? - PullRequest
12 голосов
/ 26 февраля 2012

Я пытаюсь использовать функцию PHP exec ().

Если аргумент return_var присутствует вместе с выходным аргументом, тогда статус возврата выполненной команды будет записан в эту переменная.

Если выполнение было успешным, оно равно 0. Однако, если есть ошибка, это может быть множество других целых чисел. Кажется, я нигде не могу найти то, что соответствуют этим целым числам. Как мне интерпретировать полученное целое число?

Обновление:

Я действительно должен был указать это изначально, но я выполняю другой скрипт PHP. В отличие от rsync, который имеет выходные значения на своей странице руководства, я не могу найти эквивалент для PHP.

Так что я делаю что-то вроде:

$rv = exec('php file.php', $out, $rv);

Ответы [ 3 ]

10 голосов
/ 26 февраля 2012

Возвращаемое значение зависит от процесса / программы, которую вы запустили с exec.Например, если вы запустили grep:

Статус выхода равен 0, если выбранные строки найдены, и 1, если не найдены.Если произошла ошибка, статус выхода равен 2. (Примечание. Код обработки ошибок POSIX должен проверять значение «2» или более.)

rsync имеет около 20 различных кодов выхода из ошибок, все тщательно объяснены вСтраница man:

http://linux.die.net/man/1/rsync

так что да, это зависит от программы:)

Даже если вы запускаете PHP-скрипт, значение выхода зависит от самой вашей программы,По умолчанию php-скрипты завершают работу с 0. Если вы используете функцию выхода, вы можете возвращать различные коды выхода:

http://php.net/manual/en/function.exit.php

Если вы хотите экспериментально определить, что из вашей php-программы выходит, вызовэто в командной строке:

php file.php

, затем выполните

echo $?

, это покажет вам значение выхода вашего php-скрипта.

2 голосов
/ 26 февраля 2012

ИМХО, перед использованием функции exec () лучше установить параметры output и return_var и прочитать выполнение кода возврата по return_var. Не полагайтесь на возвращаемое значение exec ().

0 голосов
/ 26 февраля 2012

Найдите страницу руководства для команды, которую вы выполняете.Это значение не имеет ничего общего с PHP, но фактическая команда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...