How can error handling be improved when using system() to execute commands in PHP?

When using `system()` to execute commands in PHP, error handling can be improved by capturing the output of the command and checking the return value for errors. This can be done by using `exec()` instead of `system()` and checking the return value for errors. Additionally, using `proc_open()` can provide more control over the command execution and error handling.

// Using exec() to capture output and check return value for errors
$output = [];
$return_var = 0;
exec("your_command_here", $output, $return_var);
if ($return_var !== 0) {
    // Handle error here
}

// Using proc_open() for more control over command execution and error handling
$descriptorspec = [
    0 => ["pipe", "r"],
    1 => ["pipe", "w"],
    2 => ["pipe", "w"]
];
$process = proc_open("your_command_here", $descriptorspec, $pipes);
if (is_resource($process)) {
    $output = stream_get_contents($pipes[1]);
    $errors = stream_get_contents($pipes[2]);
    fclose($pipes[0]);
    fclose($pipes[1]);
    fclose($pipes[2]);
    $return_value = proc_close($process);
    if ($return_value !== 0) {
        // Handle error here
    }
}