The following example shows how to setup short and long option arrays as well as reading the arguments passed via commandline. The example also introduces a helper method that converts the parsed parameters returned by Console_Getopt into a key-value-array.
<?php
/**
* Example how to get a key-value pair array
* from command line parameters with Console_Getopt.
*
* @link http://pear.php.net/bugs/bug.php?id=13902
*/
require_once 'Console/Getopt.php';
/**
* Make a key-value array.
* Since Console_Getopt does not provide such a method,
* we implement it ourselves.
*
* @params array $params Array of parameters from Console_Getopt::getopt2()
*
* @return array key-value pair array
*/
function &condense_arguments($params)
{
$new_params = array();
foreach ($params[0] as $param) {
$new_params[$param[0]] = $param[1];
}
return $new_params;
}
$cg = new Console_Getopt();
$args = $cg->readPHPArgv();
array_shift($args);
$shortOpts = 'u:g:';
$longOpts = array('user=', 'group=');
$params = $cg->getopt2($args, $shortOpts, $longOpts);
if (PEAR::isError($params)) {
echo 'Error: ' . $params->getMessage() . "\n";
exit(1);
}
var_dump(condense_arguments($params));
/*
When called as follows:
associative.php -u jason -g argonauts
you will get this output:
array(2) {
["u"]=>
string(5) "jason"
["g"]=>
string(9) "argonauts"
}
*/
?>