我已经阅读了很多关于我的问题的类似 SO 问题,但似乎都没有我的问题。如果相关,我在 Apache 2.2 上运行 PHP 5.3.8 并且 PHP exec() 运行为nt authority\system
$cmd = "java -version";
$res = exec($cmd, $output, $return);
var_dump($res, $output, $return);
产生:
string '' (length=0)
array
empty
int 0
$return
为 0 暗示这是成功的。有趣的是,如果我运行:
$cmd = "java -version 2> response";
使用预期输出创建一个文件:
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02, mixed mode)
所以我的问题是:为什么$output
没有人满?
评论更新
的结果$res = exec("dir c:", $output, $return);
string ' 2 Dir(s) 335,636,791,296 bytes free' (length=51)
array
0 => string ' Volume in drive C is Local Disk' (length=32)
1 => string ' Volume Serial Number is D87C-E25C' (length=34)
2 => string '' (length=0)
...
12 => string ' 5 File(s) 1,158 bytes' (length=45)
13 => string ' 2 Dir(s) 335,636,791,296 bytes free' (length=51)
int 0