我在生产服务器上使用php 5.2.9,似乎exec()函数表现为"非标准".
如果我运行,exec("ls", $output, $return_var)那么$output将按预期包含当前文件夹中的文件列表,但$return_var将按预期设置为-1而不是0.我正在使用它$return_var来确定命令在哪里成功完成,并在测试的每个其他服务器上按预期工作:)
有没有人遇到过这样的情况?
编辑:
<?php
$command = "asd";
$t1 = time();
$output = Array();
$result = -5;
$r = exec($command, $output, $result);
$t2 = time();
echo "<pre>";
var_export(Array(
'command'=>$command,
'result'=>$result,
'output'=>implode("\n", $output),
'r'=>$r,
't2-t1'=>$t2-$t1,
));
echo "</pre>";
Run Code Online (Sandbox Code Playgroud)
无论我输入什么命令$command,$result总是-1,即使对于不存在的命令......这很奇怪