exec

Execute an external program

&reftitle.description; ``string``false```exec` `string` `command` `array` `output`&null; `int` `result_code`&null;

`exec` executes the given `command`.

&reftitle.parameters;

`command`

- The command that will be executed.

`output`

- If the `output` argument is present, then the specified array will be filled with every line of output from the command. Trailing whitespace, such as `\n`, is not included in this array. Note that if the array already contains some elements, `exec` will append to the end of the array. If you do not want the function to append elements, call `unset` on the array before passing it to `exec`.

`result_code`

- If the `result_code` argument is present along with the `output` argument, then the return status of the executed command will be written to this variable.

&reftitle.returnvalues;

The last line from the result of the command. If you need to execute a command and have all the data from the command passed directly back without any interference, use the `passthru` function.

Returns &false; on failure.

To get the output of the executed command, be sure to set and use the `output` parameter.

&reftitle.errors;

Emits an `E_WARNING` if `exec` is unable to execute the `command`.

Throws a `ValueError` if `command` is empty or contains null bytes.

&reftitle.changelog;

&Version; | &Description;
8.0.0 | If `command` is empty or contains null bytes, `exec` now throws a `ValueError`. Previously it emitted an `E_WARNING` and returned &false;.

&reftitle.examples;

### An `exec` example

    <?php
    // outputs the username that owns the running php/httpd process
    // (on a system with the "whoami" executable in the path)
    $output=null;
    $retval=null;
    exec('whoami', $output, $retval);
    echo "Returned with status $retval and output:\n";
    print_r($output);
    ?>

&example.outputs.similar;

    Returned with status 0 and output:
    Array
    (
        [0] => cmb
    )

&reftitle.notes; &warn.escapeshell; ¬e.exec-bg; ¬e.exec-bypass-shell;
&reftitle.seealso;

- `system`
- `passthru`
- `escapeshellcmd`
- `pcntl_exec`
- backtick operator