温馨提示×

php exec如何处理错误处理

PHP
小樊
81
2024-11-29 22:24:02
栏目: 编程语言

在PHP中,exec() 函数可以用于执行外部命令

  1. 使用 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) 将错误信息拼接成字符串并输出。

  1. 使用 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() 恢复默认的错误处理函数。其他部分与第一个例子相同。

0