(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_index
rest_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_options
ylong_options
es idéntico; la única diferencia es quelong_options
toma un array en opción (donde cada elemento es una opción) mientras queshort_options
toma una cadena (donde cada carácter es una opción).
Esta función devuelve un array de opciones/argumentos, o false
en caso de 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 resultado del ejemplo sería:
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 resultado del ejemplo sería:
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 resultado del ejemplo sería:
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 resultado del ejemplo sería:
array(1) { [0]=> string(4) "test" }