在 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中文网其他相关文章!