[英]how can access argv and options together in php through command line arguments
我们有许多运行在实时服务器上的php脚本,它们使用命令行中的参数。 现在,我需要在其中的一些选项中添加另一个参数,这将告诉我有关环境的信息,然后由环境选择服务器(从属服务器,主服务器)。 选择的服务器是中央库代码。
我不想更改当前脚本中访问的参数。 因此,唯一的选择是在末尾添加此新的环境参数。 但是在那种情况下,有些克朗将不会包含此环境参数。 所以我不能盲目地访问库中的最后一个参数。 所以我想为此使用选项。
所以我的脚本将在php myscript.php arg1 arg2 -env slave之类的终端中运行
但是在这种情况下,我无法在php中获得选项。可能是因为它混合了直接提供的参数和选项。
该怎么办? 有什么帮助吗?
首先在argv
数组中搜索option( -env
),从array( $argv
)获取key
,并递增1以获取option的值:
if (false !== $key = array_search('-env', $argv)) {
$value = $key+1;
$env = $argv[$value]; // $env will be 'slave' now.
} else {
// do something else
}
可能会有更好的选择。
如果in_array()引用了PHP,那么如何获取密钥呢? 呵呵!
调用脚本时,请尝试在参数前移动选项。
php myscript.php -e slave arg1 arg2
要么
php myscript.php --env slave arg1 arg2
注意:这将更改$argv
数组作为选项,其值将首先显示在$argv
数组中,并将其他参数移至更高的索引。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.