getopt
(PHP 4 >= 4.3.0, PHP 5)
getopt — Obtiene las opciones de la lista de argumentos de la línea de comandos
Descripción
$options
[, array $longopts
] )Analiza las opciones pasadas al script.
Parámetros
-
options - Cada carácter de esta cadena de texto se usará como un carácter de opción y se comparará con aquellas opciones pasadas al script que comiencen con un guión simple (-). Por ejemplo, el string de opciones "x" reconocerá la opción -x. Sólo se permiten a-z, A-Z y 0-9.
-
longopts - Matriz de opciones. Cada elemento de este array se usará como texto de opciones y se compararán con aquellas opciones pasadas al script que comiencen con dos guiones (--). Por ejemplo, longopts tuviera un elemento con "opt", reconocería la opción --opt.
El parámetro options puede contener los siguientes
elementos:
- Caracteres individuales (no acepta valores)
- Caracteres seguidos por dos puntos (el parámetro exije un valor)
- Caracteres seguidos dos veces por dos puntos (valor opcional)
Nota: Los valores opcionales no aceptan un " " (espacio) como separador.
Nota:
El formato de
optionsy delongoptses casi igual. La única diferencia es quelongoptscontiene un array de opciones (donde cada elemento es la opción) mientras queoptionscontiene un string (donde cada carácter es la opción).
Valores devueltos
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.
Historial de cambios
| 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. |
Ejemplos
Ejemplo #1 Ejemplo de getopt(): Lo básico
<?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 Ejemplo de getopt(): Introducir opciones long
<?php
// Script example.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);
?>
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 Ejemplo de getopt(): Pasar varias opciones como una
<?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)
}