script online linea ejecutar desde consola como comandos comando cli php linux function shell command-line

online - php command line



¿Cómo ejecutar código PHP desde la línea de comando? (2)

En la línea de comando:

php -i | grep sourceguardian

Si está allí, entonces obtendrás algo de texto. Si no, no obtendrás nada.

Me gustaría ejecutar una sola instrucción php como if(function_exists("my_func")) echo ''function exists''; directamente con la línea de comando sin tener que usar un archivo php separado.

Como es posible ?


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

De todos modos, el comando php ofrece dos conmutadores 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

Puede usar el modificador phr -r como tal:

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

El comando anterior de PHP debería generar el resultado no y devuelve 0 como puede 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 una especie de cojera en comparación con phpsh , pero si no quieres instalar el asombroso shell interactivo para PHP hecho por Facebook para obtener la finalización de pestañas, el historial, etc. , entonces usa -a como tal :

>>> php -a Interactive shell php > echo function_exists("foo") ? "yes" : "no"; no php >

Si no funciona en su caja como en mi caja * es * ( probada en Ubuntu y Arch), entonces probablemente su configuración de PHP es confusa o está rota . Si ejecuta este comando:

php -i | grep ''API''

Deberías ver:

Server API => Command Line Interface

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

Si ve que su comando php usa el CLI (interfaz de línea de comandos) SAPI (API del servidor), ejecute php -h | grep code php -h | grep code para descubrir qué switch loco - ya que esto no ha cambiado para todo el año - permite ejecutar código en su versión / instalación.

Otro par de ejemplos, solo para asegurarse de que funcione en mis cuadros:

>>> 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 una extensión se cargue en la CLI y no en CGI o Apache SAPI. Es probable que varias SAPI de PHP utilicen diferentes archivos php.ini , por ejemplo /etc/php/cli/php.ini vs /etc/php/cgi/php.ini vs /etc/php/apache/php.ini en un Gentoo caja. Descubra qué archivo ini se utiliza con php -i | grep ini php -i | grep ini .