繁体   English   中英

如何通过命令行参数在php中一起访问argv和选项

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM