我正在测试php exec命令:
我得到的结果代码是127。
我的php代码是:
<?
print "<br>executing 'hello':<br><b>";
exec ("hello", $output, $result);
var_dump($output);
print "<br>$result";
print "<br></b>end hello.";
print "<br><hr><br>";
print "<br>executing 'dir':<br><b>";
exec("dir", $output2, $result2);
var_dump($output2);
print "<br>$result2";
print "<br></b>end dir.";
?>
输出结果为:
executing 'hello':
array(0) { }
127
end hello.
executing 'dir':
array(2) { [0]=> string(42) "bs1.jpg hello index.htm ml1_1.jpg pp1.jpg" }
0
end dir.
php文档(就我所能找到的)是这样说的:
return_var
如果return_var参数与output参数一起存在,则执行命令的返回状态将写入此变量。
...but没有输出可能性的列表或查找它们的方法。
有什么建议吗?
发布于 2010-02-10 00:22:46
返回代码可能有点随意。但基本上,任何非零的返回值都是错误的。Here's a list一些常见的错误代码,但通常情况下,除非您正在使用特定的程序,否则更容易假设发现了非零=某些错误,而不是试图将许多不同的程序映射到特定的错误代码。
发布于 2010-02-10 00:15:45
返回码127表示找不到指定的过程。
假设你在Windows上,
发布于 2010-02-10 00:41:48
返回值完全是任意的。当你编写一个程序时,你可以让它返回任何你想要的值。在PHP中,您可以使用exit语言构造:
<?php
exit(33);
您可以在特定软件的文档中找到该软件的确切状态代码(假设作者实际记录了该软件)。然而,人们普遍认为0表示"OK“,其他任何值都表示”有问题“,因此通常情况下,检查0就足够了。
在你的例子中,看起来你正在尝试执行一个不存在的程序。PHP通过system shell执行外部程序,因此该值可能来自bash或您拥有的任何默认shell。在Unix中,有一些exit codes with special meanings和127表示命令没有找到。
https://stackoverflow.com/questions/2230523
复制相似问题