PHP проверяет массив командной строки argv для набора параметров команды

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

sh#php geninvoices.php --type=generate --w --bill_day=7$commands=array('--type','--bill_day','--save');
if(!in_array($commands, $argv)){
print_r($argv);
help();
}

любая помощь ?

0

Решение

Просто чтобы показать идею

$argv = array('generate.php', '--type=generate', '--write', '--bill_day=7');
$args = array();
foreach($argv as $i => $str)
{
if ($i == 0) continue;
list($arg, $value) = explode('=', $str, 2);
$args[ltrim($arg, '-')] = $value;
}

var_dump($args);

И теперь у вас есть аргументы со значениями, и вы можете делать все, что захотите.

array(3) {
["type"]=>
string(8) "generate"["write"]=>
NULL
["bill_day"]=>
string(1) "7"}
0

Другие решения

Других решений пока нет …