操作系统交互函数

  • system()
    输出行为:直接输出命令的标准输出(STDOUT),输出所有结果。
    返回值:成功时返回所有输出;失败时返回 false
    状态码:可通过第二个参数获取命令的退出状态码。
1
$last_line = system('ls -la', $status_code);
  • exec()
    输出行为:默认不直接输出结果,需通过第二个参数捕获完整输出数组。
    返回值:成功时返回命令的最后一行输出(若要全部输出,需要第二个参数捕获完整输出数组,然后输出该数组);失败时返回 false
    状态码:通过第三个参数获取退出状态码。
1
2
exec('ls -la', $output, $status_code);
print_r($output); // 输出数组形式的结果
  • shell_exec() 和反引号运算符(`)

    输出行为:不直接输出结果,返回完整输出字符串。
    返回值:成功时返回完整的输出字符串;失败或空输出时返回 null

1
2
3
4
$result = shell_exec('ls -la');
// 或使用反引号
$result = `ls -la`;
echo $result;
  • passthru()
    输出行为:直接输出原始二进制数据(如图像、音频)到浏览器。
    返回值:无输出内容,但可通过第二个参数获取状态码。
1
passthru('cat image.jpg', $status_code);