php怎么获取exec执行结果

fiy 其他 524

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在PHP中,使用`exec()`函数可以执行命令并获取其结果。`exec()`函数的用法如下:
    “`php
    exec(command, output, return_var);
    “`
    其中,`command`参数表示要执行的命令,`output`参数是一个可选的引用变量,用于存储命令的输出结果,`return_var`参数是一个可选的引用变量,用于存储命令的返回值。

    下面是一个示例代码,演示了如何使用`exec()`函数获取命令执行结果:
    “`php
    $command = ‘ls -l’; // 要执行的命令
    $output = array(); // 初始化一个数组变量,用于存储命令的输出结果
    $return_var = 0; // 初始化一个变量,用于存储命令的返回值

    exec($command, $output, $return_var); // 执行命令并获取结果

    // 打印命令的输出结果
    foreach ($output as $line) {
    echo $line . “
    “;
    }

    // 打印命令的返回值
    echo “Return value: ” . $return_var;
    “`
    在上述示例中,我们通过`exec()`函数执行了一个`ls -l`命令,并将输出结果存储在`$output`数组中。然后,我们使用`foreach`循环遍历输出结果,并依次打印每一行。最后,我们打印了命令的返回值。

    需要注意的是,`exec()`函数只返回命令的最后一行输出结果,如果想获取所有的输出结果,可以使用`shell_exec()`函数。使用方式如下:
    “`php
    $output = shell_exec(command);
    “`
    其中,`command`参数表示要执行的命令,`output`变量将会存储命令的输出结果。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在PHP中,可以使用`exec`函数来执行命令,并获取其执行结果。`exec`函数会执行指定的系统命令,并将结果返回给调用者。下面是获取`exec`执行结果的方法:

    1. 使用`exec`函数获取结果变量:

    “`php
    exec(‘command’, $result);
    var_dump($result);
    “`

    可以将一个空数组作为第二个参数传给`exec`函数,该参数将被用于保存执行结果。执行完`exec`函数后,`$result`变量将被填充为命令的输出结果。

    2. 使用反引号运算符:

    “`php
    $result = `command`;
    echo $result;
    “`

    使用反引号运算符可以直接执行命令,并将执行结果赋值给变量。这种方式更简洁,但只能获取命令输出的最后一行结果。

    3. 使用`shell_exec`函数:

    “`php
    $result = shell_exec(‘command’);
    echo $result;
    “`

    `shell_exec`函数与`exec`函数的功能类似,都可以执行系统命令并获取结果,但`shell_exec`函数会返回命令的输出结果作为一个字符串。

    4. 使用`passthru`函数:

    “`php
    passthru(‘command’, $result);
    var_dump($result);
    “`

    `passthru`函数会执行命令,并将结果直接输出到浏览器。同时,也可以使用第二个参数来获取执行结果。

    5. 使用`proc_open`函数:

    “`php
    $descriptorspec = array(
    0 => array(“pipe”, “r”), // 标准输入
    1 => array(“pipe”, “w”), // 标准输出
    2 => array(“pipe”, “w”) // 标准错误输出
    );

    $process = proc_open(‘command’, $descriptorspec, $pipes);

    if (is_resource($process)) {
    $result = stream_get_contents($pipes[1]);
    fclose($pipes[1]);
    $return_value = proc_close($process);

    echo $result;
    var_dump($return_value);
    }
    “`

    使用`proc_open`函数可以打开一个进程,并与其进行通信。通过定义`$descriptorspec`数组来指定输入、输出和错误输出的管道。然后通过`stream_get_contents`函数获取输出结果。

    总结起来,PHP提供了多种方法来获取`exec`执行的结果,包括使用`exec`函数、反引号运算符、`shell_exec`函数、`passthru`函数和`proc_open`函数。具体选择哪种方法取决于实际需求和执行情况。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在PHP中,可以使用exec函数来执行外部命令,并且获取执行结果。exec函数会执行给定的命令,并将输出的结果作为字符串返回。

    exec函数的语法是:

    “`
    string exec ( string $command [, array &$output [, int &$return_var ]] )
    “`

    其中,$command参数是要执行的命令,$output参数是一个可选的数组参数,用于存储命令的输出结果的每一行,$return_var参数是一个可选的变量参数,用于存储命令的返回值。

    下面是获取exec执行结果的操作流程:

    1. 构建要执行的命令。
    2. 调用exec函数执行命令,并将结果保存在$output参数中。
    3. 判断命令的返回值,保存在$return_var参数中。
    4. 处理命令的输出结果,如果需要的话。

    下面是一个示例代码:

    “`php
    “;
    }
    } else {
    echo “Command failed with return value: ” . $return_var;
    }
    ?>
    “`

    上述代码中,我们使用了ls -l命令来列出当前目录下的文件和文件夹,并将结果打印到页面上。如果命令执行成功,就打印输出结果;如果命令执行失败,则打印返回值。

    这里需要注意的是,exec函数是阻塞执行的,也就是说必须等到命令执行完毕才会返回结果。如果你需要在命令执行过程中获取实时输出,可以使用其他函数,比如shell_exec或者popen。此外,需要注意的是,exec函数在执行一些敏感命令时,可能会受到限制,需要设置相关权限或者配置。

    通过以上的方法,你可以轻松地在PHP中获取exec执行的结果。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部