getopt
(PHP 4 >= 4.3.0, PHP 5, PHP 7)
getopt — Gets options from the command line argument list
Description
array getopt
( string $options
[, array $longopts
[, int &$optind
]] )
Parameters
-
options
-
Each character in this string will be used as option characters and
matched against options passed to the script starting with a single
hyphen (-).
For example, an option string "x" recognizes an
option -x.
Only a-z, A-Z and 0-9 are allowed.
-
longopts
-
An array of options. Each element in this array will be used as option
strings and matched against options passed to the script starting with
two hyphens (--).
For example, an longopts element "opt" recognizes an
option --opt.
-
optind
-
If the
optind
parameter is present, then the
index where argument parsing stopped will be written to this variable.
The options
parameter may contain the following
elements:
- Individual characters (do not accept values)
- Characters followed by a colon (parameter requires value)
- Characters followed by two colons (optional value)
Option values are the first argument after the string. If a value is required,
it does not matter whether the value has leading white space or not. See note.
Note:
Optional values do not accept " " (space) as a separator.
Note:
The format for the options
and
longopts
is almost the same, the only difference is
that longopts
takes an array of options (where each
element is the option) whereas options
takes a
string (where each character is the option).
Return Values
This function will return an array of option / argument pairs, or FALSE
on failure.
Note:
The parsing of options will end at the first non-option found, anything
that follows is discarded.
Examples
Example #1 getopt() example: The basics
<?php
// Script example.php
$options = getopt("f:hp:");
var_dump($options);
?>
shell> php example.php -fvalue -h
The above example will output:
array(2) {
["f"]=>
string(5) "value"
["h"]=>
bool(false)
}
Example #2 getopt() example: Introducing long options
<?php
// Script example.php
$shortopts = "";
$shortopts .= "f:"; // Required value
$shortopts .= "v::"; // Optional value
$shortopts .= "abc"; // These options do not accept values
$longopts = array(
"required:", // Required value
"optional::", // Optional value
"option", // No value
"opt", // No value
);
$options = getopt($shortopts, $longopts);
var_dump($options);
?>
shell> php example.php -f "value for f" -v -a --required value --optional="optional value" --option
The above example will output:
array(6) {
["f"]=>
string(11) "value for f"
["v"]=>
bool(false)
["a"]=>
bool(false)
["required"]=>
string(5) "value"
["optional"]=>
string(14) "optional value"
["option"]=>
bool(false)
}
Example #3 getopt() example: Passing multiple options as one
<?php
// Script example.php
$options = getopt("abc");
var_dump($options);
?>
shell> php example.php -aaac
The above example will output:
array(2) {
["a"]=>
array(3) {
[0]=>
bool(false)
[1]=>
bool(false)
[2]=>
bool(false)
}
["c"]=>
bool(false)
}
Example #4 getopt() example: Using optind
<?php
// Script example.php
$optind = null;
$opts = getopt('a:b:', [], $optind);
$pos_args = array_slice($argv, $optind);
var_dump($pos_args);
shell> php example.php -a 1 -b 2 -- test
The above example will output:
array(1) {
[0]=>
string(4) "test"
}