Я пытаюсь установить переменную, которая должна быть доступна из-за пределов PHP. В идеале это должна быть локальная переменная, но переменные среды также приветствуются.Экспортировать переменную из PHP в оболочку
Во-первых, я попытался putenv()
, но это не дает никакого результата:
$ PHP -r "PutEnv ('PHP_TEST = строка');" ; Эхо $ PHP_TEST
$
Когда я называю getenv()
из того же самого сценария - это приводит к правильному значению 'строка'. Безопасный режим выключен, но руководство говорит префикс «php_» имеет жизненно важное значение с безопасным = на так что я использую его только в случае :)
Тогда я пытаюсь system()
или shell_exec()
:
$ PHP -r "shell_exec ('PHP_TEST = строка');" ; echo $ PHP_TEST
$ php -r "shell_exec ('export PHP_TEST = string');" ; Эхо $ PHP_TEST
$
Есть обходной путь? что может быть причиной? Я использую Ubuntu Linux 9.10 «Karmic», но сервер FreeBSD дает тот же результат.
Спасибо! Это делает вопрос ясным. Но тогда, как «getopt» (и некоторые другие не встроенные программы) удается экспортировать переменные во внешний контекст? (Например, 'getopt' export' $ OPTIND') – kolypto
Вы вводите в заблуждение внешний '/ usr/bin/getopt', который не делает этого и не может сделать это с встроенным' getopts', который делает. –