我们对它们使用的参数从命令行现场服务器上运行的许多PHP脚本。 现在我需要在一些crons它会告诉我有关环境,进而选择服务器(从站,主站)的增加一个说法。 而这个选择的服务器是一个中央库中的代码。
我不想改变当前脚本访问参数。 所以唯一的选择就是在结尾处添加这个新的环境参数。 但在这种情况下,有哪个不会被包含这种环境参数crons。 所以,我不能一味访问库中的最后一个参数。 所以我想使用这个选项。
所以我的脚本将在PHP myscript.php ARG1 ARG2 -env从终端上运行
但在这种情况下,我不能让在PHP选项。可能是因为混合其他直接提供的参数与选项..
该怎么办? 任何帮助吗?
该选项(第一搜索-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()如何拿到钥匙呢? 呵呵!
尝试调用脚本时的参数之前移动选项。
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