PHP - 使用环境变量运行脚本

时间:2018-02-01 14:47:15

标签: php python html

我设置了一个php脚本来从html页面运行我的python包。我的python模块通过~/.bash_profile的系统变量调用一些外部专有工具。

目的:当我使用php执行我的脚本时,没有可用的环境变量(os.getenv()返回None)。

问题:将系统变量从PHP路由到python的最有效方法是什么?

提前致谢

1 个答案:

答案 0 :(得分:1)

此函数:http://php.net/proc_open具有名为$env的第五个参数,用于将任何环境变量传递给新进程。

这是我用来运行它的最短代码:

$proc = proc_open(
    "php demo-2.php", // put your python script here
    [
        0 => ['pipe', 'r'],
        1 => ['pipe', 'w'],
        2 => ['pipe', 'a'],
    ],
    $pipes,
    null,
    [
        'SECRET' => $secret,
    ]
);
print stream_get_contents($pipes[1]);
fclose($pipes[1]);
proc_close($proc);

BTW我的demo-2.php仅包含<?php print_r($_ENV); ?>

PS。如果您使用PHP进行尝试并且只打印空数组,请编辑php.ini并将variables_order设置为包含E,该$_ENV负责填充{{1}}变量。