在PHP中,你可以使用shell_exec
或exec
函数来执行Linux命令并捕获错误输出
shell_exec
函数:<?php
$command = "ls /non/existent/folder";
$output = shell_exec($command . 2>&1);
echo "<pre>$output</pre>";
?>
在这个例子中,我们尝试列出一个不存在的文件夹。2>&1
表示将错误输出(文件描述符2)重定向到标准输出(文件描述符1)。
exec
函数:<?php
$command = "ls /non/existent/folder";
$output = [];
$return_var = 0;
exec($command . " 2>&1", $output, $return_var);
if ($return_var !== 0) {
echo "Error: " . implode("\n", $output);
} else {
echo "<pre>" . implode("\n", $output) . "</pre>";
}
?>
在这个例子中,我们同样尝试列出一个不存在的文件夹。我们将命令的输出和错误输出分别存储在$output
和$return_var
中。如果$return_var
不等于0,表示命令执行失败,我们输出错误信息。否则,我们正常输出命令的输出。
注意:在使用这些函数时,请确保你的PHP脚本有足够的权限来执行命令。如果需要,你可以使用sudo
来提升权限,但请注意这可能会带来安全风险。