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" ).