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