getopt
是一个用于解析命令行选项和参数的 PHP 函数
以下是一个简单的示例,说明如何在命令行程序中使用 getopt
:
#!/usr/bin/env php
<?php
// 定义支持的选项和参数
$options = [
'help' => ['h', 'Show this help message'],
'input' => ['i', 'Input file'],
'output' => ['o', 'Output file'],
];
// 使用 getopt 解析命令行参数
$args = getopt(implode('|', array_keys($options)), $options);
// 检查是否提供了帮助选项
if (isset($args['h'])) {
showHelp();
exit;
}
// 检查是否提供了输入和输出文件选项
if (!isset($args['i']) || !isset($args['o'])) {
showHelp();
exit;
}
// 读取输入文件并处理数据
$inputFile = $args['i'];
$outputFile = $args['o'];
$data = file_get_contents($inputFile);
// 将处理后的数据写入输出文件
file_put_contents($outputFile, $data);
echo "Data has been successfully copied from $inputFile to $outputFile.\n";
function showHelp() {
global $options;
echo "Usage: php script.php [options]\n";
echo "Options:\n";
foreach ($options as $option => $details) {
echo " -{$option}, --{$details[0]} {$details[1]}\n";
}
}
?>
在这个示例中,我们定义了两个支持选项:-i
或 --input
用于指定输入文件,-o
或 --output
用于指定输出文件。getopt
函数解析这些选项,并在后续代码中使用它们。
要运行此脚本,请将其保存为 script.php
,然后在命令行中执行以下命令:
php script.php -i input.txt -o output.txt
这将读取 input.txt
文件的内容,并将其写入 output.txt
文件。如果提供了帮助选项(例如 -h
或 --help
),则脚本将显示用法信息。