【问题标题】:How to use arguments and options in a php shell script如何在 php shell 脚本中使用参数和选项
【发布时间】:2016-05-12 20:43:57
【问题描述】:

我正在尝试调试旨在通过​​命令行运行的遗留 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 &lt;argument&gt; 调用它。我不想更改它的调用方式,因为这是一个遗留脚本,可以在天知道的地方使用。

有没有办法可以使用 getopt() 来获取可以纠正案例 1 的选项?

【问题讨论】:

    标签: php shell


    【解决方案1】:

    我通过http://php.net/getopt 找到了自己的答案。即时通讯。

    选项的解析将在找到的第一个非选项处结束, 后面的任何东西都会被丢弃。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-27
      • 1970-01-01
      • 1970-01-01
      • 2012-06-17
      • 2012-05-21
      • 2011-11-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多