Tengo un script PHP que necesita determinar si se ejecutó a través de la línea de comandos o HTTP, principalmente con fines de formateo de salida. ¿Cuál es la forma canónica de hacer esto? Pensé que era para inspeccionar SERVER['argc']
, pero resulta que esto está lleno, incluso cuando se usa la API del servidor 'Apache 2.0 Handler'.
fuente
Esto siempre funcionará. (Si la versión de PHP es 4.2.0 o superior)
Lo que facilita su uso en la parte superior de sus scripts:
fuente
CLI or die('not allowed');
CLI or die('not allowed');
es perfecto.Which makes it easy to use at the top of your scripts
realmente no suena como dos usos separados. Sí, soy nigromante.Aquí está la implementación de Drupal 7: drupal_is_cli () :
Sin embargo, Drupal 8 recomienda usar
PHP_SAPI === 'cli'
fuente
Yo creo que
no se completará desde la CLI.
Además, todas las claves HTTP_ * en la superglobal $ _SERVER no se completarán desde la CLI, o lo harán de la manera correcta, solo mencioné :-)
fuente
La página de documentación de
php_sapi
_name indica claramente cómo funciona:No estoy seguro de por qué hop no cree que PHP sea para programadores serios (soy un programador serio y uso PHP a diario), pero si quiere ayudar a aclarar la documentación, entonces quizás pueda auditar todos los servidores web posibles PHP puede ejecutarse y determinar los nombres de todos los tipos de interfaz posibles para cada servidor. Solo asegúrese de mantener esa lista actualizada a medida que se agreguen nuevos servidores web e interfaces.
Además, Bobby dijo:
La descripción para el ejemplo dice:
fuente