Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Created July 19, 2019 03:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save parzibyte/f54fae9d752538ad4a9c8529d581960d to your computer and use it in GitHub Desktop.
Save parzibyte/f54fae9d752538ad4a9c8529d581960d to your computer and use it in GitHub Desktop.
Getopt long options https://parzibyte.me/blog
<?php
// Recuerda:
// Si tiene : entonces debe tener un valor
// Si tiene :: entonces su valor es opcional
// Si no tiene : ni :: entonces quiere decir que la opción es una bandera, no un valor
// Las opciones son:
// -d destinatario
// -a Asunto del correo
// -m El mensaje del correo
// -g Si se especifica la opción, el correo será guardado
$argumentos = getopt("d:a:m:g", array(
"destinatario:",
"asunto:",
"mensaje:",
"guardar",
));
// Las opciones deben estar establecidas
// Si no, salimos e indicamos el modo de uso
if (
!(isset($argumentos["d"]) || isset($argumentos["destinatario"]))
||
!(isset($argumentos["a"]) || isset($argumentos["asunto"]))
||
!(isset($argumentos["m"]) || isset($argumentos["mensaje"]))
) {
exit("Modo de uso:
-d --destinatario Correo del destinatario
-a --asunto Asunto del correo
-m --mensaje El mensaje del correo
-g --guardar Si se especifica la opción, el correo será guardado");
}
// Hasta aquí todas las opciones están bien establecidas
$destinatario = isset($argumentos["d"]) ? $argumentos["d"] : $argumentos["destinatario"];
$asunto = isset($argumentos["a"]) ? $argumentos["a"] : $argumentos["asunto"];
$mensaje = isset($argumentos["m"]) ? $argumentos["m"] : $argumentos["mensaje"];
$guardar = isset($argumentos["g"]) || isset($argumentos["guardar"]);
echo "Enviar correo" . PHP_EOL;
echo "Destinatario: $destinatario" . PHP_EOL;
echo "Asunto: $asunto" . PHP_EOL;
echo "Mensaje: $mensaje" . PHP_EOL;
echo "¿Guardar?: " . ($guardar ? "Sí" : "No") . PHP_EOL;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment