输出外部过程到管道和php:// stdout

时间:2017-08-30 13:57:04

标签: php stderr proc-open

如果我使用

在PHP中运行外部脚本
$p = proc_open(
    'myscript.php', 
    array(
        0 => array('file', 'inputfile.txt', 'r'),
        1 => array('pipe', 'w'),
        2 => array('pipe', 'w'),
    ), 
    $pipes,
    $path
);

然后我可以通过

获得stderr输出
$error = stream_get_contents($pipes[2]);

如果我想在控制台上显示stderr输出,那么我可以将其运行为:

$p = proc_open(
    'myscript.php', 
    array(
        0 => array('file', 'inputfile.txt', 'r'),
        1 => array('file', 'php://stdout', 'w'),
        2 => array('file', 'php://stderr', 'w'),
    ), 
    $pipes,
    $path
);

然而,

$error = stream_get_contents($pipes[2]);

不会产生任何输出。

如何将stderr输出打印到控制台并可供我的脚本使用?

0 个答案:

没有答案