首頁 >後端開發 >php教程 >如何可靠地確定 PHP 腳本是在命令列還是 HTTP 模式下運行?

如何可靠地確定 PHP 腳本是在命令列還是 HTTP 模式下運行?

Susan Sarandon
Susan Sarandon原創
2024-11-19 20:00:04851瀏覽

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