php_sapi_name()
non è davvero il modo migliore per eseguire questo controllo perché dipende controllo contro molti valori possibili. Il binario php-cgi può essere chiamato dalla riga di comando, da uno script di shell o come un cron job e (nella maggior parte dei casi) anche questi dovrebbero essere trattati come 'cli' ma php_sapi_name()
restituirà valori diversi per questi (si noti che questo non è è il caso della versione semplice di PHP, ma vuoi che il tuo codice funzioni ovunque, giusto?). Per non parlare del fatto che il prossimo anno potrebbero esserci nuovi modi per usare PHP che non possiamo sapere ora. Preferirei non pensarci quando tutto quello che mi interessa è che dovrei avvolgere il mio output in HTML o no.
Fortunatamente, PHP ha un modo per verificare questo specificamente.È sufficiente utilizzare http_response_code()
senza parametri e verrà restituito TRUE se eseguito da un ambiente di tipo server Web e FALSE se eseguito da un ambiente di tipo CLI. Ecco il codice:
$is_web=http_response_code()!==FALSE;
Questo funziona anche se accidentalmente impostare un codice di risposta da uno script in esecuzione dalla CLI (o qualcosa di simile al CLI) prima di chiamare questo (?).
cura e chiarito la questione. – Shameem