Returns value of command line params.
Description
Exits when a required param is not set.
Parameters
$param
stringrequired$required
booloptionalDefault:
false
Source
function get_cli_args( $param, $required = false ) {
$args = $_SERVER['argv'];
if ( ! is_array( $args ) ) {
$args = array();
}
$out = array();
$last_arg = null;
$return = null;
$il = count( $args );
for ( $i = 1, $il; $i < $il; $i++ ) {
if ( (bool) preg_match( '/^--(.+)/', $args[ $i ], $match ) ) {
$parts = explode( '=', $match[1] );
$key = preg_replace( '/[^a-z0-9]+/', '', $parts[0] );
if ( isset( $parts[1] ) ) {
$out[ $key ] = $parts[1];
} else {
$out[ $key ] = true;
}
$last_arg = $key;
} elseif ( (bool) preg_match( '/^-([a-zA-Z0-9]+)/', $args[ $i ], $match ) ) {
for ( $j = 0, $jl = strlen( $match[1] ); $j < $jl; $j++ ) {
$key = $match[1][ $j ];
$out[ $key ] = true;
}
$last_arg = $key;
} elseif ( null !== $last_arg ) {
$out[ $last_arg ] = $args[ $i ];
}
}
// Check array for specified param.
if ( isset( $out[ $param ] ) ) {
// Set return value.
$return = $out[ $param ];
}
// Check for missing required param.
if ( ! isset( $out[ $param ] ) && $required ) {
// Display message and exit.
echo "\"$param\" parameter is required but was not specified\n";
exit;
}
return $return;
}
User Contributed Notes
You must log in before being able to contribute a note or feedback.