You are here
PHP para Shell, Utilidades practicas. Sin categoría 

PHP para Shell, Utilidades practicas.

Todo el mundo sabe del potencial que tiene PHP para la programación de páginas web, pero también lo fantástico que puede llegar a ser para crear programas multiplataformas para Shell. Vamos a ver algunas cosas que podemos hacer con PHP en línea de comandos y que puede ser desconocidos para algunos.

1.- Ejecutar un Script

Podemos crearnos nuestros programas en un archivo php y luego ejecutarlo por medio del binario de php. Vamos a ver como ejecutarlo en Linux y Windows.

En Linux deberíamos de ejecutar:


$ php test.php

Mientras que en Windows sería:

> php.exe test.php

Al ejecutar esto, se mostraría por pantalla lo que contenga el fichero test.php.

2.- Hacer que el script sea ejecutable

En Windows tendremos que asociar la extensión .php al binario php.exe. De esa forma, al hacer doble clic sobre un fichero, este se ejecutará. Sin embargo, si quisiéramos que se pudiera ejecutar desde la consola, tendríamos que crear un fichero por lotes .bat que realice la llamada.


@echo OFF
"C:phpphp.exe" test.php

En sistemas Unix, esto es más sencillo, tenemos que añadir en la primera línea la ruta al binario que ejecuta al script y posteriormente le damos permisos de ejecución. El fichero quedaría de la siguiente forma.


#!/usr/bin/php

3.- Pasar parámetros al programa

Al igual que todos los comandos que nos podemos encontrar en consola, podríamos necesitar la creación de algún php que necesitara ciertos parámetros. Esto no es problema, pero hay que ver varios casos.

Si es en linux y el archivo no tiene permisos, entonces los parámetros hay que pasáselos detrás del carácter “-”, para evitar que el binario de php piense que son suyos.


$ php test.php  parametro1 parametro2 

Si el archivo tiene permisos, entonces no hace falta el guión


$ ./test.php parametro1 parametro2

En Windows, como hemos visto más arriba, había que utilizar un fichero por lotes, por lo que ahora quedaría de esta forma:


@echo OFF
"C:phpphp.exe" test.php %*

Ahora para recuperar los parámetros introducidos podemos hacer uso de las variables “$argc” y “$argv” que tiene PHP para este fin.

4.- Usar PHP como consola interactiva

Como en otros lenguajes, en php se puede meter los comandos en una consola y esta los ejecuta al vuelo. Sólo hay que poner el parámetro “-a”. Un ejemplo sería:


$ php -a
Interactive shell

php > echo 5+8;
13
php > function sumarDos($n)
php > {
php { return $n + 2;
php { }
php > var_dump(sumarDos(2));
int(4)
php >

Esta consola te permite el autocompletado de función mediante el uso del tabulador.

5.- Ejecutar línea de código PHP al momento

Hay que casos en los que queremos ejecutar código php al momento, pues esto nos lo permite PHP mediante el modificador “-r”. Si queremos mostar el md5 del contenido de un fichero, se haría de la siguiente forma:


php -r 'echo md5(file_get_contents("fichero.txt"));'

El comando a ejecutar hay que ponerlo dentro de las comillas simples.

6.- Pasar contenidos a PHP por tuberías

Podemos hacer que el resultado de ejecutar un comando, le llegue a un PHP que sea el encargado de ejecutarlo. Para ello, se debe de consultar la entrada estándar. Para ello disponemos de tres constantes:

  • STDIN – Stream a la entrada estándar.
  • STDOUT – Stream a la salida estándar.
  • STDERR – Stream a la salida de errores.

Un ejemplo de uso, podría ser:


echo "hola mundo" | php -r 'echo strlen(fgets(STDIN));'

La cadena que imprime echo, se le pasa al php y nos muestra la longitud.

7.- Mostrar un fichero en PHP sin comentarios ni espacios

El modificador “-w” elimina todos los caracteres en blanco innecesarios y todos los comentarios, mostrando el código sin espacio, minimizando así el tamaño del fichero.


$ php -w fichero.php

8.- Consultar documentación desde consola

Desde consola podemos consultar la documentación de cualquier función de php que necesitemos utilizar, pero para ello, es necesario que la versión de php esté compilada con la extensión Refelction. Esto nos da 4 opciones:

  • “–rf” – Muestra información de una función o de un método de una clase.
  • “–rc” – Muestra información de una clase (sus métodos, atributos, constantes…).
  • “–re” – Muestra información de una extensión (directivas .ini, funciones, constantes, clases, etc).
  • “–ri” – Muestra información sobre la configuración de una extensión. Esto es, lo mismo que devuelve phpinfo() para cada extensión. Si queremos ver la información general, usaremos “main” como nombre de extensión.

Veamos un ejemplo:


$ php --rf md5
Function [  function md5 ] {
  - Parameters [2] {
    Parameter #0 [  $str ]
    Parameter #1 [  $raw_output ]
  }
}

9.- Decorar la sintaxis de nuestro código

PHP nos ofrece una forma sencillísima de generar una versión HTML de nuestro código, coloreando y destacando cada parte. Sólo tendremos que ejecutarlo con el modificador “-w”. Una vez hecho esto, podremos exportarla al formato que queramos (PDF, Word, XHTML, etc). Muy útil cuando queremos imprimir un código fuente.


$ php -w fichero.php

10.- Definir código inicial, final y para cada línea

PHP nos ofrece algo parecido a los comando sed o awk, pero para ello hay que utilizar 4 modificadores:

  • “-B” – Código PHP a ejecutar antes que todo lo demás.
  • “-F” – Código PHP a ejecutar cuando finalice todo lo demás.
  • “-R” – Código PHP a ejecutar por cada línea. Tendremos $argn con la línea que se está procesando, y $argi con el número de línea.
  • “-F” – Fichero con el código PHP a ejecutar por cada línea.

Veamos un ejemplo muy didáctico y muy poco útil de la documentación de PHP. Supongamos que queremos contar el número de líneas de un proyecto. Accedemos a su directorio y ejecutamos lo siguiente:


$ find . | php -B '$lineas=0;' -R '$lineas += count(@file($argn));' -E 'echo "Total de líneas: $lineasn";'


 
Si quieres seguir aprendiendo con nosotros, puedes ingresar a nuestros
Cursos y Diplomados de Tecnología Web visita www.uneweb.edu.ve  para más información

Related posts

Comments

Leave a Comment


*