程序执行

escapeshellarg

<?php

var_dump(escapeshellarg('foo')); // string(5) ""foo""

escapeshellcmd

<?php

var_dump(escapeshellarg('&#;`|*?~<>^()[]{}$\%!')); // string(23) ""&#;`|*?~<>^()[]{}$\  ""

exec

<?php

var_dump(exec('dir'));
var_dump(exec('dir', $foo));
var_dump($foo);
var_dump(exec('dir', $foo, $bar));
var_dump($foo, $bar);

passthru

<?php

passthru('dir');
passthru('dir', $foo);
var_dump($foo);

proc_close

<?php

$descriptorspec = [
    0 => ['pipe', 'r'],
    1 => ['pipe', 'w'],
    2 => ['file', __DIR__ . '/error.log', 'a']
];
$process = proc_open('php', $descriptorspec, $pipes, __DIR__);
var_dump(proc_close($process));

proc_get_status

<?php

$descriptorspec = [
    0 => ['pipe', 'r'],
    1 => ['pipe', 'w'],
    2 => ['file', __DIR__ . '/error.log', 'a']
];
$process = proc_open('php', $descriptorspec, $pipes, __DIR__);
var_dump(proc_get_status($process));

proc_nice

<?php

var_dump(proc_nice(-20));
var_dump(proc_nice(20));

proc_open

<?php

$descriptorspec = [
    0 => ['pipe', 'r'],
    1 => ['pipe', 'w'],
    2 => ['file', __DIR__ . '/error.log', 'a']
];
$process = proc_open('php', $descriptorspec, $pipes, __DIR__);
var_dump($process);

if (is_resource($process)) {
    fwrite($pipes[0], '<?php echo 2 + 3; ?>');
    fclose($pipes[0]);
    var_dump(stream_get_contents($pipes[1])); // string(1) "5"
    fclose($pipes[1]);
    var_dump(proc_close($process));
}

proc_terminate

<?php

$descriptorspec = [
    0 => ['pipe', 'r'],
    1 => ['pipe', 'w'],
    2 => ['file', __DIR__ . '/error.log', 'a']
];
$process = proc_open('php', $descriptorspec, $pipes, __DIR__);
var_dump(proc_terminate($process));

shell_exec

<?php

var_dump(shell_exec('dir'));

system

<?php

var_dump(system('dir'));
var_dump(system('dir', $foo));
var_dump($foo);

results matching ""

    No results matching ""