GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo puedo ejecutar código PHP desde la línea de comandos?

Si va a ejecutar PHP en la línea de comandos, le recomiendo que instale phpsh, un shell de PHP decente. Es mucho más divertido.

De todos modos, el php comando ofrece dos interruptores para ejecutar código desde la línea de comando :

-r <code>        Run PHP <code> without using script tags <?..?>
-R <code>        Run PHP <code> for every input line

Puedes usar php El interruptor -r de ' como tal:

php -r 'echo function_exists("foo") ? "yes" : "no";'

El comando PHP anterior debería salir no y devoluciones 0 como puedes ver:

>>> php -r 'echo function_exists("foo") ? "yes" : "no";'
no
>>> echo $? # print the return value of the previous command
0

Otro cambio divertido es php -a :

-a               Run as interactive shell

Es algo aburrido en comparación con phpsh , pero si no desea instalar el increíble shell interactivo para PHP creado por Facebook para obtener la finalización de pestañas, el historial, etc., entonces use -a como tal :

>>> php -a
Interactive shell

php > echo function_exists("foo") ? "yes" : "no";
no
php >

Si no funciona en tu caja como en mis cajases (probado en Ubuntu y Arch Linux), entonces probablemente su configuración de PHP sea borrosa o esté rota . Si ejecuta este comando:

php -i | grep 'API'

debería ver:

Server API => Command Line Interface

Si no lo hace , esto significa que tal vez otro comando proporcione la CLI SAPI . Pruebe php-cli; tal vez sea un paquete o un comando disponible en su sistema operativo.

Si lo hace mira que tu php El comando utiliza la CLI (interfaz de línea de comandos) SAPI (API del servidor), luego ejecuta php -h | grep code para descubrir qué interruptor loco -ya que esto no ha cambiado en años- permite ejecutar código en su versión/configuración.

Otro par de ejemplos, solo para asegurarme de que funciona en mis cajas:

>>> php -r 'echo function_exists("sg_load") ? "yes" : "no";'
no
>>> php -r 'echo function_exists("print_r") ? "yes" : "no";'
yes

Además, tenga en cuenta que es posible que se cargue una extensión en la CLI y no en el CGI o Apache SAPI. Es probable que varios PHP SAPI utilicen diferentes archivos php.ini , por ejemplo, /etc/php/cli/php.ini contra /etc/php/cgi/php.ini contra /etc/php/apache/php.ini en una caja Gentoo Linux. Averigüe qué archivo ini se usa con php -i | grep ini .


Usando PHP desde la línea de comando

Utilice " en lugar de ' en Windows al usar la versión CLI con -r :

Correcto

php -r "echo 1;"

Incorrecto

php -r 'echo 1;'
  PHP Parse error:  syntax error, unexpected ''echo' (T_ENCAPSED_AND_WHITESPACE), expecting end of file in Command line code on line 1

No olvide el punto y coma para cerrar la línea (de lo contrario, el resultado es "PHP Parse error:error de sintaxis, final inesperado del archivo, esperando ';' o ',' en el código de la línea de comando en la línea 1" ).


Linux
  1. Cómo instalar software desde la línea de comandos de Linux

  2. Cómo enumerar los módulos cargados o habilitados en PHP desde la línea de comandos

  3. ¿Cómo reiniciar Icewm desde la línea de comandos?

  4. ¿Cómo silenciar desde la línea de comandos?

  5. ¿Cómo puedo ejecutar una función desde un script en la línea de comandos?

¿Cómo borrar el contenido de un archivo desde la línea de comando?

¿Cómo puedo enviar correo cifrado con gpg automáticamente desde la línea de comandos de Linux?

¿Cómo puedo copiar una carpeta desde la línea de comandos de Linux?

¿Cómo obtengo mi dirección IP desde la línea de comandos?

¿Cómo puedo ejecutar manualmente una comprobación de nagios desde la línea de comandos?

¿Cómo puedo abrir un archivo con números de línea que se muestran desde la línea de comando en 'vi'?