首页 >后端开发 >php教程 >如何可靠地确定 PHP 脚本是在命令行还是 HTTP 模式下运行?

如何可靠地确定 PHP 脚本是在命令行还是 HTTP 模式下运行?

Susan Sarandon
Susan Sarandon原创
2024-11-19 20:00:04846浏览

How to Reliably Determine if a PHP Script Is Running in Command-Line or HTTP Mode?

确定 PHP 中的命令行与 HTTP 执行

在 PHP 中,确定脚本是从命令行执行还是通过 HTTP 执行对于输出至关重要格式化和其他目的。检查 SERVER['argc'] 数组的传统方法并不在所有情况下都可靠,因为即使在 HTTP 执行期间它也可能被填充。

此问题的规范解决方案是使用 php_sapi_name() 函数。该函数返回Web服务器和PHP之间的接口类型。如果返回值为“cli”,则脚本正在从命令行执行,而任何其他值表示 HTTP 执行。

if (php_sapi_name() == "cli") {
    // In cli-mode
} else {
    // Not in cli-mode
}

正如 PHP 文档中所述,php_sapi_name() 可以返回各种值取决于服务器接口。一些常见的值包括“apache”、“cgi-fcgi”、“nsapi”和“litespeed”。

在 PHP 4.2.0 及更高版本中,还有一个预定义常量 PHP_SAPI 具有相同的值如 php_sapi_name()。该常量可以用作函数的替代。

以上是如何可靠地确定 PHP 脚本是在命令行还是 HTTP 模式下运行?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn