$v) printf("\t%s%s\n", $n, $v["usage"]); } function parse_cmdargs(&$argt, &$err) { $err = ""; global $argc, $argv; for($a=1; $a<$argc; $a++) { //echo "parse_cmdargs :: $a\n"; $arg = $argv[$a]; if($arg=="--" || $arg=="-") continue; if(($p = strpos($arg, "=")) === false) { parse_arg($arg, $argt, $err); } else { parse_arg(substr($arg, 0, $p), $argt, $err); parse_arg("=", $argt, $err); parse_arg(substr($arg, $p+1), $argt, $err); } } foreach($argt as $n=>$v) { if(!isset($v["values"][0]) && isset($v["default"])) { $argt[$n]["set"] = true; $argt[$n]["values"][] = $v["default"]; } } return($err == ""); } function parse_arg($arg, &$argt, &$err) { static $last_arg=""; static $curopt = null; if($arg != "=") { if($last_arg != "=") { if(isset($argt[$arg])) $argt[$curopt = $arg]["set"] = true; else { $err .= "option '" . $arg . "' inconnue.\n"; if(isset($argt["--help"])) $argt["--help"]["set"] = true; } } else { if($curopt) $argt[$curopt]["values"][] = $arg; else { $err .= "'=' doit suivre un nom d'option.\n"; if(isset($argt["--help"])) $argt["--help"]["set"] = true; } } } $last_arg = $arg; } ?>