kol*_*pto 5 php shell export environment-variables
我正在尝试设置一个应该可以从PHP外部访问的变量.理想情况下,这应该是一个局部变量,但也欢迎环境变量.
首先,我尝试过putenv(),但这没有结果:
$ php -r"putenv('PHP_TEST = string');" ; echo $ PHP_TEST
$
当我getenv()从同一个脚本调用时- 它会产生正确的'字符串'值.安全模式已关闭,但手册中说"PHP_"前缀对于safe = on至关重要所以我使用它以防万一:)
然后我尝试system()或shell_exec():
$ php -r"shell_exec('PHP_TEST = string');" ; echo $ PHP_TEST
$ php -r"shell_exec('export PHP_TEST = string');" ; echo $ PHP_TEST
$
有解决方法吗?可能是什么原因?我正在使用Ubuntu Linux 9.10"Karmic",但FreeBSD服务器给出了相同的结果.
如果您尝试将一些输出传递给 shell 变量,您可以这样做:
$ testvar=$(php -r 'print "hello"')
$ echo $testvar
hello
Run Code Online (Sandbox Code Playgroud)
显示出口如何影响事物:
$ php -r '$a=getenv("testvar"); print $a;'
$ export testvar
$ php -r '$a=getenv("testvar"); print $a;'
hello
Run Code Online (Sandbox Code Playgroud)
在这些示例中,交互式 shell 是父进程,而显示的其他所有内容都是子进程(并且彼此是兄弟进程)。