如何在PHP中通过命令行参数访问的argv和选项一起(how can access argv and

2019-10-21 01:20发布

我们对它们使用的参数从命令行现场服务器上运行的许多PHP脚本。 现在我需要在一些crons它会告诉我有关环境,进而选择服务器(从站,主站)的增加一个说法。 而这个选择的服务器是一个中央库中的代码。

我不想改变当前脚本访问参数。 所以唯一的选择就是在结尾处添加这个新的环境参数。 但在这种情况下,有哪个不会被包含这种环境参数crons。 所以,我不能一味访问库中的最后一个参数。 所以我想使用这个选项。

所以我的脚本将在PHP myscript.php ARG1 ARG2 -env从终端上运行

但在这种情况下,我不能让在PHP选项。可能是因为混合其他直接提供的参数与选项..

该怎么办? 任何帮助吗?

Answer 1:

该选项(第一搜索-env阵列中) argv拿到key从阵列( $argv )和递增1得到选项的值:

if (false !== $key = array_search('-env', $argv)) {
    $value = $key+1;
    $env = $argv[$value]; // $env will be 'slave' now.
} else {
    // do something else
} 

可能有一些更好的选择。

提到PHP如果in_array()如何拿到钥匙呢? 呵呵!



Answer 2:

尝试调用脚本时的参数之前移动选项。

 php myscript.php -e slave arg1 arg2

要么

php myscript.php --env slave arg1 arg2

注意:这将改变$argv数组作为选项,它的价值将在第一显示$argv数组和移动其他参数较高的指数。



文章来源: how can access argv and options together in php through command line arguments