Publi

Introducir datos desde la línea de comandos en PHP (con muchas posibilidades)

Si desde nuestros programas en PHP queremos pedir al usuario información desde la línea de comandos… Ehmm, ¿por qué vamos a querer hacerlo? Se me ocurren varios ejemplos, por ejemplo la instalación de un programa, una configuración básica del mismo (sin acudir a web), para modificar aspectos de la configuración de nuestros programas, porque hagamos un programa de consola (a veces es lo más rápido y útil), o porque implementemos un intérprete de comandos. Por poner algunos ejemplos.

Bueno, el caso es que podemos hacer algo muy sencillo:

1
2
3
<?php
$texto = fread(STDIN, 100);
?>

Ok, hemos pedido hasta 100 caracteres desde la entrada estándar (STDIN), y está muy bien, es muy útil en algunas ocasiones, y muy rápido; pero a veces nos faltan opciones, como por ejemplo poder pulsar las teclas izquierda y derecha (cosa que en algunos terminales, se ve feo); la posibilidad de insertar texto (es muy común que se nos escape una letra mientras escribimos, y volvamos atrás para insertar esa letra en medio); que podamos ir al inicio o al fin del texto; o que queramos hacer cosas más interesantes como implementar un pequeño completion, para que pulsando arriba o abajo aparezca texto automáticamente.

Hace tiempo que implementé algo parecido, lo encontré en medio del disco duro, criando un poco de polvo y lo he rescatado para el blog, además, lo he publicado en mi web de proyectos (así vamos subiendo algo poco a poco) y en github (me está gustando esto de github).

El proyecto está bajo la licencia MIT, he escrito un poco de documentación (en inglés por ahora). De todas formas, si queréis documentación en español, podéis pedirla en los comentarios, así me animo un poco y me pongo a traducir 🙂

En la web, y la documentación que os he remitido tenéis ejemplos de cómo utilizar esto.

También podría interesarte....

Only 1 comment left Ir a comentario

  1. WWE Jackets /
    Usando Google Chrome Google Chrome 119.0.0.0 en Windows Windows NT

    Awesome blog. I have read and thought about what you said. I have bookmarked it and I am looking forward to reading new articles. Keep up the good work!

Leave a Reply