如何使用PHP检查脚本是从控制台还是浏览器请求运行的?
2022-08-30 10:36:42
我尝试了像$_ENV['CLIENTNAME'] == 'Console'这样的东西,但这似乎只适用于某些操作系统(在Windows中工作,而不是linux)。
我试过!empty($_ENV['SHELL']),但这并不总是有效...
有没有办法检查这一点,这将适用于所有操作系统/环境?
我尝试了像$_ENV['CLIENTNAME'] == 'Console'这样的东西,但这似乎只适用于某些操作系统(在Windows中工作,而不是linux)。
我试过!empty($_ENV['SHELL']),但这并不总是有效...
有没有办法检查这一点,这将适用于所有操作系统/环境?
返回一个小写字符串,该字符串描述 PHP 正在使用的接口类型(服务器 API,SAPI)。例如,在CLI PHP中,此字符串将为“cli”,而对于Apache,它可能具有几个不同的值,具体取决于所使用的确切SAPI。
例如:
$isCLI = (php_sapi_name() == 'cli');
您还可以使用常量PHP_SAPI
检查 http://php.net/manual/en/features.commandline.php#105568“PHP_SAPI”常量
<?php
if (PHP_SAPI === 'cli')
{
// ...
}
?>