我尝试使用以下代码PATH
在使用exec()
.
$s1 = getenv ('PATH');
putenv('PATH=c:\bins');
$s2 = getenv ('PATH');
putenv('PATH='.$s1);
$s3 = getenv ('PATH');
var_dump($s1);
var_dump($s2);
var_dump($s3);
脚本第一次运行时,一切都按预期工作。这是输出:
string 'C:\Program Files (x86)\'... (length=1400)
string 'c:\bins' (length=7)
string 'C:\Program Files (x86)\'... (length=1400)
但是,似乎 PHPPATH
在此脚本运行后会破坏,因为第二次运行它会产生以下输出。
boolean false
string 'c:\bins' (length=7)
string '' (length=0)
我通过 fastcgi 在带有 lighttpd 和 PHP 5.3 的 Windows 上得到了这种行为。我还没有使用 Linux/Apache 进行测试。
以下方法在 Windows 上不起作用(即使您使用 &): 如何在 PHP 中设置 $PATH?
有谁知道一种与操作系统无关的改变方式PATH
?