php_sapi_name()
cgi-fcgi
在 CLI 和 web 中返回:(
当 PHP 与 fcgi 一起运行时,是否有任何可靠的方法来检测脚本当前是否在命令行模式下运行?
编辑:nvm。事实证明我必须运行php-cli
可执行文件大声笑
php_sapi_name()
cgi-fcgi
在 CLI 和 web 中返回:(
当 PHP 与 fcgi 一起运行时,是否有任何可靠的方法来检测脚本当前是否在命令行模式下运行?
编辑:nvm。事实证明我必须运行php-cli
可执行文件大声笑
尝试这个。是否有区别:
if (defined('PHP_SAPI')) {
echo PHP_SAPI;
}
检查$_SERVER
和$_ENV
超全局数组。
尝试$_SERVER['REMOTE_ADDR']
或 $_SERVER['argc']。
我找到了一个很好的答案形式https://stackoverflow.com/a/12654906/1197702
function drupal_is_cli() {
return (!isset($_SERVER['SERVER_SOFTWARE']) && (php_sapi_name() == 'cli' || (is_numeric($_SERVER['argc']) && $_SERVER['argc'] > 0)));
}
这对我有用:Debian 7、Apache 2.2、PHP 5.4.4-14+deb7u7 (cgi-fcgi) & PHP 5.4.4-14+deb7u7 (cli)
function is_cli()
{
return (
!array_key_exists('SERVER_SOFTWARE', $_SERVER)
&& (php_sapi_name() === 'cli' || !array_key_exists('REMOTE_ADDR', $_SERVER))
);
}