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
.