代码之家  ›  专栏  ›  技术社区  ›  Jeffrey Berthiaume

PHP返回变量代码?

  •  22
  • Jeffrey Berthiaume  · 技术社区  · 15 年前

    我正在测试php exec命令:

    http://php.net/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文档(据我所能找到的)说明如下:

    返回变量

    如果返回变量 与输出一起出现 参数,然后返回的状态 执行的命令将被写入 到这个变量。

    …但没有输出可能性列表或查找它们的方法。

    有什么建议吗?

    4 回复  |  直到 8 年前
        1
  •  22
  •   Owen Ryan Doherty    15 年前

    返回代码可能有点随意。基本上,任何非零返回值都是一个错误。 Here's a list 在一些常见的错误中,但通常情况下,除非您使用特定的程序,否则更容易假设非零=发现了一些错误,而不是尝试将许多不同的程序映射到特定的错误代码。

        2
  •  10
  •   Anthony Forloney    15 年前

    返回代码127表示 找不到指定的过程。

    假设你在窗户上, Windows System Error Codes

        3
  •  3
  •   Álvaro González    8 年前

    返回值完全是任意的。当你编写一个程序时,你可以让它返回你想要的任何值。在PHP中,您可以使用 exit 语言结构:

    <?php
    exit(33);
    

    您可以在文档中找到特定软件的确切状态代码(假定作者实际记录了该代码)。但是,有一个共同的共识,0表示“好”,其他任何意思都表示“有问题”,所以对零的检查通常就足够了。

    在您的情况下,看起来您正在尝试执行一个不存在的程序。PHP通过系统shell执行外部程序,因此该值可能来自bash或您拥有的任何默认shell。在Unix中,有一些 exit codes with special meanings 一百二十七 方法 找不到命令 .

        4
  •  1
  •   Bruce Alderman    15 年前

    执行() 对外部文件进行操作,并从外部文件或操作系统接收返回代码。如果127来自操作系统,则表示在定义的路径中找不到该文件。

    另一方面,如果127来自正在运行的应用程序,则必须检查该应用程序的文档以了解其含义。