(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
getopt — Lee las opciones pasadas en la línea de comandos
getopt() lee las opciones pasadas en la línea de comandos.
short_options-).
Por ejemplo, una cadena opcional "x" coincidirá
con la opción -x.
Solo se permiten a-z, A-Z y 0-9.
long_options--).
Por ejemplo, un elemento longopts "opt"
coincidirá con la opción --opt.
rest_indexrest_index está presente, entonces el índice
donde se detuvo el análisis de los argumentos será escrito en esta variable.
El parámetro short_options puede contener los siguientes elementos:
Nota: Los valores opcionales no aceptan el espacio como separador.
El array de valores long_options puede contener:
Nota:
El formato de los parámetros
short_optionsylong_optionses idéntico; la única diferencia es quelong_optionstoma un array en opción (donde cada elemento es una opción) mientras queshort_optionstoma una cadena (donde cada carácter es una opción).
Esta función devuelve un array de opciones/argumentos, o false si ocurre un error.
Nota:
El análisis de las opciones se detendrá cuando se encuentre la primera opción incorrecta, y todo lo que siga será ignorado.
| Versión | Descripción |
|---|---|
| 7.1.0 |
Se añadió el parámetro rest_index.
|
Ejemplo #1 Ejemplo con getopt(): los fundamentos
<?php
// Script example.php
$options = getopt("f:hp:");
var_dump($options);
?>shell> php example.php -fvalue -h
El ejemplo anterior mostrará :
array(2) {
["f"]=>
string(5) "value"
["h"]=>
bool(false)
}
Ejemplo #2 Segundo ejemplo con getopt(): Introducción a las opciones largas
<?php
// Script example.php
$shortopts = "";
$shortopts .= "f:"; // Valor requerido
$shortopts .= "v::"; // Valor opcional
$shortopts .= "abc"; // Estas opciones no aceptan valor
$longopts = array(
"required:", // Valor requerido
"optional::", // Valor opcional
"option", // Ningún valor
"opt", // Ningún valor
);
$options = getopt($shortopts, $longopts);
var_dump($options);
?>shell> php example.php -f "value for f" -v -a --required value --optional="optional value" --option
El ejemplo anterior mostrará :
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)
}
Ejemplo #3 Tercer ejemplo con getopt(): Pasar múltiples opciones
<?php
// Script example.php
$options = getopt("abc");
var_dump($options);
?>shell> php example.php -aaac
El ejemplo anterior mostrará :
array(2) {
["a"]=>
array(3) {
[0]=>
bool(false)
[1]=>
bool(false)
[2]=>
bool(false)
}
["c"]=>
bool(false)
}
Ejemplo #4 Ejemplo de getopt(): Utilizando rest_index
<?php
// Script example.php
$rest_index = null;
$opts = getopt('a:b:', [], $rest_index);
$pos_args = array_slice($argv, $rest_index);
var_dump($pos_args);shell> php example.php -a 1 -b 2 -- test
El ejemplo anterior mostrará :
array(1) {
[0]=>
string(4) "test"
}