php_sapi_name()
no es realmente la mejor manera de realizar esta comprobación, ya que depende de comprobación con muchos valores posibles. El binario php-cgi se puede llamar desde la línea de comandos, desde un script de shell o como un trabajo cron y (en la mayoría de los casos) estos también deben tratarse como 'cli', pero php_sapi_name()
devolverá valores diferentes para estos (tenga en cuenta que esto no es No es el caso con la versión simple de PHP pero quiere que su código funcione en cualquier lugar, ¿no?). Sin mencionar que el próximo año puede haber nuevas formas de usar PHP que posiblemente no podamos saber ahora. Prefiero no pensar en eso cuando todo lo que me preocupa es el clima. Debo incluir mi salida en HTML o no.
Afortunadamente, PHP tiene una forma de verificar esto específicamente.Solo use http_response_code()
sin ningún parámetro y devolverá TRUE si se ejecutó desde un entorno de tipo servidor web y FALSE si se ejecutó desde un entorno de tipo CLI. Aquí está el código:
$is_web=http_response_code()!==FALSE;
Esto va a trabajar incluso si accidentalmente se configura un código de respuesta de un guión que va desde la línea de comandos (o algo así como la CLI) antes de llamar a esto (?).
editado y aclarado la cuestión. – Shameem