¿Cómo ejecutar el código PHP desde la línea de comando?
163
Me gustaría ejecutar una sola declaració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.
hacer function_exists () sin usar ningún otro archivo que contenga una función definida por el usuario no será muy bueno, excepto para probar la versión de PHP, que puede descubrir de otras maneras. ¿Qué función quieres probar?
Matt Gibson
Estoy buscando probar esta función: sg_load ()
Steve
2
¿Parece que lo que realmente quieres es saber si la extensión php sourceguardian está habilitada?
Matt Gibson
2
entonces phpinfo () debería decirte.
jpic
Respuestas:
256
Si vas a hacer PHP en la línea de comando, te recomiendo que instales phpsh, un shell PHP decente . Es mucho mas divertido.
De todos modos, el comando php 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
Si no funciona en su caja como en mi caja * es * ( probado en Ubuntu y Arch), entonces probablemente su configuración de PHP es difusa o rota . Si ejecuta este comando:
php -i | grep 'API'
Usted debe ver:
Server API =>CommandLineInterface
Si no lo hace , esto significa que tal vez otro comando proporcionará la 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 la CLI (Interfaz de línea de comando) SAPI (API del servidor), ejecute php -h | grep codepara averiguar qué interruptor loco, ya que esto no ha cambiado durante un año, permite ejecutar el código en su versión / configuración.
Otro par de ejemplos, solo para asegurarme de que funciona en mis cajas:
Además, tenga en cuenta que es posible que se cargue una extensión en la CLI y no en la CGI o Apache SAPI. Es probable que varios SAPI de PHP utilicen diferentes archivos php.ini , por ejemplo, /etc/php/cli/php.inivs /etc/php/cgi/php.inivs /etc/php/apache/php.inien un cuadro de Gentoo. Averigüe con qué archivo ini se usa php -i | grep ini.
O estoy ciego o esta respuesta no tiene nada que ver con la pregunta. ¿Cómo se supone que esta respuesta responde a la pregunta " Cómo ejecutar el código PHP directamente desde la línea de comandos, sin guardar el código PHP en el .phparchivo? "
trejder
15
@trejder Por un momento, me pregunté si había respondido la pregunta incorrecta, pero luego miré el historial de edición y los comentarios. Esto responde a lo que el OP parecía realmente necesitar: descubrir si se cargó una extensión PHP en particular. Desde entonces, la pregunta se ha reformulado, por lo que no encaja tan bien ahora.
Respuestas:
Si vas a hacer PHP en la línea de comando, te recomiendo que instales phpsh, un shell PHP decente . Es mucho mas divertido.
De todos modos, el comando php ofrece dos interruptores para ejecutar código desde la línea de comando :
Puede usar el modificador phr 's como tal:
El comando PHP anterior anterior debería generar
no
y devuelve0
como puede ver:Otro cambio divertido es php -a :
Es un poco aburrido en comparación con phpsh , pero si no desea instalar el increíble shell interactivo para php hecho por Facebook para completar la pestaña, el historial, etc. , use -a como tal :
Si no funciona en su caja como en mi caja * es * ( probado en Ubuntu y Arch), entonces probablemente su configuración de PHP es difusa o rota . Si ejecuta este comando:
Usted debe ver:
Si no lo hace , esto significa que tal vez otro comando proporcionará la 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 la CLI (Interfaz de línea de comando) SAPI (API del servidor), ejecute
php -h | grep code
para averiguar qué interruptor loco, ya que esto no ha cambiado durante un año, permite ejecutar el código en su versión / configuración.Otro par de ejemplos, solo para asegurarme de que funciona en mis cajas:
Además, tenga en cuenta que es posible que se cargue una extensión en la CLI y no en la CGI o Apache SAPI. Es probable que varios 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 cuadro de Gentoo. Averigüe con qué archivo ini se usaphp -i | grep ini
.fuente
En la línea de comando:
Si está allí, obtendrás algo de texto. Si no, no obtendrás nada.
fuente
.php
archivo? "Puedes usar :
La etiqueta corta " <? = " También puede ser útil:
La etiqueta de cierre "?>" Es opcional, pero no olvide el final ";" !
fuente
php -r
usarlo, no necesita preocuparse por abrir etiquetas PHP.Usando PHP desde la línea de comando
use "en lugar de ' en Windows cuando use la versión cli con -r
- correcto
- incorrecto
fuente