getopt
是 PHP 中的一个命令行参数解析函数,它允许你定义自己的输出格式
$options, $args) { $opt = []; $long_opts = []; // 将选项字符串转换为长选项数组 foreach ($options as $option => $value) { $long_opts[] = $option . ($value =https://www.yisu.com/ask/== true ?'=' : ':'); } // 使用 getopt 解析命令行参数 $options = getopt($long_opts, $args); // 遍历解析后的选项 while (isset($options[$option])) { $opt[$option] = $options[$option] === true ? true : $options[$option]; unset($options[$option]); } return $opt; } // 定义命令行选项 $options = [ 'f|file=s' => 'input-file', 'o|output=s' => 'output-file', 'h|help' => 'show help', ]; // 解析命令行参数 $opt = my_getopt($options, []); // 自定义输出格式 function print_help() { echo "Usage: script.php [options]\n"; echo "Options:\n"; foreach ($options as $option => $description) { $value = https://www.yisu.com/ask/isset($opt[$option]) ?" ($opt[$option])" : ''; echo " -{$option}$value $description\n"; } } function print_version() { echo "Script version 1.0\n"; } // 根据解析后的选项执行相应操作 if (isset($opt['h'])) { print_help(); exit(0); } elseif (isset($opt['v'])) { print_version(); exit(0); } elseif (isset($opt['f']) && isset($opt['o'])) { $input_file = $opt['f']; $output_file = $opt['o']; echo "Processing file: $input_file\n"; echo "Output file: $output_file\n"; } else { print_help(); exit(1); }
在这个示例中,我们定义了一个名为 my_getopt
的函数,它接受一个选项字符串和一个参数数组。然后,我们使用 getopt
函数解析命令行参数,并将结果存储在 $opt
数组中。接下来,我们定义了两个自定义函数 print_help
和 print_version
,用于以自定义格式输出帮助信息和版本信息。最后,我们根据解析后的选项执行相应的操作。