(PHP 4 >= 4.3.0, PHP 5)
getopt — Obtiene las opciones de la lista de argumentos de la línea de comandos
$options
[, array $longopts
] )Analiza las opciones pasadas al script.
options
longopts
El parámetro options
puede contener los siguientes
elementos:
Nota: Los valores opcionales no aceptan un " " (espacio) como separador.
Nota:
El formato de
options
y delongopts
es casi igual. La única diferencia es quelongopts
contiene un array de opciones (donde cada elemento es la opción) mientras queoptions
contiene un string (donde cada carácter es la opción).
Esta función devolverá un array de pares opciones / argumentos, o FALSE
en
caso de error.
Nota:
El análisis de opciones finalizará cuando se encuentre alguna no-opción. Todo lo que haya a continuación será descartado.
Versión | Descripción |
---|---|
5.3.0 | Añadido soporte para usar "=" como separador de argumento/valor. |
5.3.0 | Añadido soporte para valores opcionales (especificado mediante "::"). |
5.3.0 |
El parámetro longopts está disponible en todos los sistemas.
|
5.3.0 | Esta función ya no depende del sistema y funciona también en Windows. |
Ejemplo #1 Ejemplo de getopt()
<?php
$options = getopt("f:hp:");
var_dump($options);
?>
El ejecutar el script superior con php script.php -fvalue -h se mostrará:
array(2) { ["f"]=> string(5) "value" ["h"]=> bool(false) }
Ejemplo #2 Ejemplo 2 de getopt()
<?php
$shortopts = "";
$shortopts .= "f:"; // Valor obligatorio
$shortopts .= "v::"; // Valor opcional
$shortopts .= "abc"; // Estas opciones no aceptan valores
$longopts = array(
"required:", // Valor obligatorio
"optional::", // Valor opcional
"option", // Sin valores
"opt", // Sin valores
);
$options = getopt($shortopts, $longopts);
var_dump($options);
?>
Al ejecutar el script superior con php script.php -f "value for f" -v -a --required value --optional="optional value" --option se obtendrá:
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 Ejemplo 3 de getopt()
Pasando múltiples opciones como una
<?php
$options = getopt("abc");
var_dump($options);
?>
Al ejecutar el script superior con php script.php -aaac se obtendrá:
array(2) { ["a"]=> array(3) { [0]=> bool(false) [1]=> bool(false) [2]=> bool(false) } ["c"]=> bool(false) }