как получить доступ к argv и параметрам вместе в php через аргументы командной строки

у нас много скриптов php, работающих на живых серверах, которые используют аргументы из командной строки. Теперь мне нужно добавить еще один аргумент в некоторых из этих кронов, которые расскажут мне об окружающей среде, которые, в свою очередь, выбирают сервер (подчиненный, ведущий). И этот выбор серверов является центральным библиотечным кодом.

Я не хочу изменять аргумент, доступный в текущих сценариях. поэтому только опция заключается в добавлении этого нового аргумента среды в конце. Но в этом случае есть кроны, которые не будут содержать аргументы этой среды. Поэтому я не могу слепо получить доступ к последнему аргументу в библиотеке. Поэтому я решил использовать для этого варианты.

поэтому мой скрипт будет запущен в терминале, например php myscript.php arg1 arg2 -env slave

но в этом случае я не могу получить параметры в php. Может быть, потому что это сочетание аргументов, предоставленных напрямую и с опциями.

что делать? Любая помощь?

Solutions Collecting From Web of "как получить доступ к argv и параметрам вместе в php через аргументы командной строки"

Сначала поиск опции ( -env ) в массиве argv получает key от массива ( $argv ) и increment на 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 массиве и перенесет другие аргументы в более высокий индекс.