php - 使用 PHP 执行 Python 程序

标签 php python

我可以像这样简单地使用 PHP 执行 Python 程序吗? (在浏览器中)

exec("python myProgram /Applications/MAMP/htdocs/somefile.xml");

或者像这样:

exec("/path/to/python path/to/myProgram /Applications/MAMP/htdocs/somefile.xml");

这个方法正确吗?

如果没有,正确的方法应该是什么?

谢谢

最佳答案

我更喜欢使用 mvds 建议的 proc_open() ,因为您无法使用 exec()/shell_exec( 写入 STDIN 或从 STDOUT 读取),以及提供您自己的一组环境变量 -$_ENV

从我的代码中提取的示例片段:

$process = proc_open(
    "{$command}",
    array(            
     array('pipe', 'r'),
     array('pipe', 'w'),
     array('pipe', 'w')
    ),
    $pipes,
    NULL,
    $_ENV
);

if(is_resource($process)){

    fwrite($pipes[0], $string);
    fclose($pipes[0]);

    $rt = stream_get_contents($pipes[1]);
    fclose($pipes[1]);

    $rtErr = stream_get_contents($pipes[2]);
    fclose($pipes[2]);

    $exitCode = proc_close($process);

}

了解更多:http://php.net/manual/en/function.proc-open.php

关于php - 使用 PHP 执行 Python 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3276491/

相关文章:

php - 如何在 WooCommerce 管理订单列表中的买家姓名后添加第一条订单消息

php - 试图在每个 <ul> 元素中只显示 4 个结果

php - Zend Framework 1 更新操作

python - numpy .dot 使用列表和数组,有什么区别

php - Laravel whereNotIn 语句无法正常工作

javascript - 尝试创建测验计时器

python - 队列模块错误

python - 将 hexbin 图加在一起

python - OpenCV 使用形态学运算计算重叠圆

python - Vim with python 支持环境变量