我有这个函数来解析参数:
function arguments($argv) {
$_ARG = array();
foreach ($argv as $arg) {
if (ereg('--([^=]+)=(.*)', $arg, $reg)) {
$_ARG[$reg[1]] = $reg[2];
} elseif (ereg('--([a-zA-Z0-0\-]*)', $arg, $reg)) {
$_ARG[$reg[1]] = 'true';
} elseif (ereg('-([a-zA-Z0-9])', $arg, $reg)) {
$_ARG[$reg[1]] = 'true';
} elseif (ereg('([a-zA-Z0-0\-]*)', $arg, $reg)) {
$_ARG[$reg[1]] = 'true';
}
}
return $_ARG;
}
在var_dump()
之后,我得到了类似的内容:
array(4) {
["xqr"]=>
string(4) "true"
["query"]=>
string(60) "Some string..."
["input"]=>
string(12) "input03.txt"
["n"]=>
string(4) "true"
}
我的问题是,我无法在解析的参数中检测到重复项。例如php name.php --query='Some string...' --input=input03.txt -n -n
或php name.php --query='Some string...' --input=input03.txt n n
。这两个输入均无效,只有一个-n
且不能为n
。
你能帮我解决一下吗?谢谢