如何在PHP中解析命令行参数?

Don*_*n P 3 php command-line

我从命令行调用PHP脚本 $ php my_script.php --num1=124 --first_name=don

如何访问传递到此脚本的任何键值对?键可以是任意的,因此使用getopt()特定值将不起作用.

这是我想在我的脚本中访问的内容:

$my_args = array(
  "num1" => 124,
  "first_name" => "don"
);
Run Code Online (Sandbox Code Playgroud)

如果我使用var_dump($argv),我得到这个输出:

array(
  [0] => "my_script.php",
  [1] => "--num1=5",
  [2] => "--num2=123"
);
Run Code Online (Sandbox Code Playgroud)

我应该看看

Bar*_*mar 6

$my_args = array();
for ($i = 1; $i < count($argv); $i++) {
    if (preg_match('/^--([^=]+)=(.*)/', $argv[$i], $match)) {
        $my_args[$match[1]] = $match[2];
    }
}
Run Code Online (Sandbox Code Playgroud)