我试图调试一个旨在通过命令行运行的遗留php脚本()。该脚本旨在获取1个可选参数,后跟N个选项。编写本意图时,以下两种情况均应有效。
案例1:带选项的论据:
php script.php <argument> --option-a=tuesdays --option-b
案例2:没有选项参数:
php script.php --option-c
在脚本中,使用以下内容获取参数和选项:
$argument = (strpos($argv[1], '-') === 0) ? '' : $argv[1];
$options = getopt('', [
'option-a:',
'option-b',
'option-c',
]);
案例2始终按预期工作。我收到选项,参数是空的。
案例1没有按预期工作。我收到了参数,但$ options数组总是空的。
我看过the suggestion that reverses the order of the options and arguments,所以我通过php script --option-c <argument>
来调用它。我不想改变它被调用的方式,因为这是一个可以使用goodness-know-where的遗留脚本。
我有没有办法使用getopt()
来获取可以纠正案例1的选项?