无法在exec,shell_exec,proc_open中获取输出

时间:2018-11-09 11:27:45

标签: php python

在同一PHP目录中有一个名为pygmentize2.exe的程序。 我无法使用exec获得任何输出:

$result = iconv('cp950',
'UTF-8',
shell_exec('pygmentize2.exe -f html test.py 2>&1'));
echo $result;

然后我尝试:-

$process = proc_open("pygmentize2.exe -f html test.py", array(2 => 
    array("pipe", "w")), $pipes);

    // Get stuff from stderr, because `at` prints out there for some odd reason
    if(is_resource($process)) {
    $output = stream_get_contents($pipes[2], 100);
    fclose($pipes[2]);

    $return_value = proc_close($process);
}

$ return_value为1,而$ output仍为NULL

即使我更改为exec

$arr = array();

exec('pygmentize2.exe -f html test.py 2>&1',$arr);
$output_string = join( "\n", $arr );
echo $output_string;

还是,什么也没得到

有人说我应该使用绝对路径在Windows下执行。

C:\\xampp\\htdocs\\pygmentize2.exe

仍然不起作用

但是在cmd中,程序似乎运行正常。

cmd

编辑

我的Windows有两个用户帐户

Apache是​​由user1安装的,而我是在user2上运行的

我停止Apache并在user1上重新运行,

0 个答案:

没有答案