shell_exec() не работает на моем localhost. Я прочитал много веб-сайтов, чтобы решить эту проблему, но не могу найти решение. Этот код:
$output = shell_exec("env");
print "<pre>$output</pre>";
Не дает результата.
Я проверил в php.ini disable_functions
но shell_exec
не отключен. Я сделал error_reporting = E_ALL
но опять нет вывода (без ошибок). Все, что я получаю, это просто пустой экран. Даже safe_mode
выключен.
Если я пишу echo "BULB";
после вышеуказанного кода печатается "BULB".
В чем может быть проблема?
Какую информацию вы ожидаете получить от env
? Из ваших комментариев мне кажется, что вы пытаетесь использовать команду Linux в системе Windows, которая никогда не сработает.
В системах Linux команда env
сама по себе возвращает список переменных среды, которые были определены. Однако env
не является допустимой командой в Windows.
Если вы просто ищете список переменных среды, на самом деле это можно получить на PHP без необходимости обращаться к команде оболочки. PHP имеет встроенную глобальную переменную $_ENV
которая содержит копию всех переменных среды, которые были определены при заявлении программы. Просто print_r($_ENV)
чтобы увидеть их.
С другой стороны, если вам действительно нужно использовать shell_exec()
по какой-то причине, то вам нужно принять во внимание используемую вами операционную систему. В Linux вы должны использовать команду env
. Эквивалент в Windows set
без каких-либо аргументов. Таким образом, ваш код становится:
$output = shell_exec("set");
Обратите внимание: формат вывода может не совпадать с тем, что вы получили бы в Linux, поэтому, если вы его разберете, этот код тоже изменится.
Если вам нужен код для работы на нескольких платформах, вам нужно будет написать дополнительный код перед shell_exec()
чтобы определить операционную систему и разработать правильную команду для использования.
shell_exec
верна, но env
является допустимой командой в Windows.
'env' is not recognised as an internal or external command.
, Так что, если это команда Windows, это не по пути моей системы.
env
в своей консоли, вы получите вывод?ReferenceError: env is not defined