在PHP中,exec()
函数可以用于执行外部命令
- 使用
2>&1
将错误输出重定向到标准输出:
$command = "your_command_here 2>&1"; exec($command, $output, $return_var); if ($return_var !== 0) { echo "Error: " . implode("\n", $output); } else { echo "Success: " . implode("\n", $output); }
在这个例子中,$command
是你要执行的外部命令。2>&1
表示将错误输出(文件描述符2)重定向到标准输出(文件描述符1)。exec()
函数执行命令并将输出存储在 $output
数组中。$return_var
变量包含命令的返回值。如果返回值不是0,表示命令执行失败,我们可以通过 implode("\n", $output)
将错误信息拼接成字符串并输出。
- 使用
set_error_handler()
自定义错误处理函数:
function custom_error_handler($errno, $errstr, $errfile, $errline) {
echo "Error: [$errno] $errstr on line $errline in $errfile";
}
set_error_handler("custom_error_handler");
$command = "your_command_here";
exec($command, $output, $return_var);
restore_error_handler();
if ($return_var !== 0) {
echo "Error: " . implode("\n", $output);
} else {
echo "Success: " . implode("\n", $output);
}
在这个例子中,我们首先定义了一个自定义错误处理函数 custom_error_handler()
,然后使用 set_error_handler()
将其设置为当前的错误处理函数。在执行命令后,我们使用 restore_error_handler()
恢复默认的错误处理函数。其他部分与第一个例子相同。