如何在php shell脚本中使用参数和选项

4

我正在尝试调试一个旧的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数组始终为空。
我看到建议反转选项和参数的建议,因此我将通过php script --option-c <argument>调用它。我不想改变它的调用方式,因为这是一个可以在任何地方使用的旧脚本。
有没有办法使用getopt()获取选项以更正案例1?
1个回答

4

我通过http://php.net/getopt找到了自己的答案。阅读手册。

选项的解析将在找到第一个非选项时结束,后面的任何内容都将被丢弃。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接