編碼的世界 / 優質文選 / 文明

PHP常量PHP_SAPI與函數php_sapi_name()簡介,PHP運行環境檢測


2022年7月03日
-   

PHP常量PHP_SAPI與函數php_sapi_name()簡介,PHP運行環境檢測
PHP_SAPI 用來判斷是使用命令行還是瀏覽器執行的,如果 PHP_SAPI==’cli’ 表示是在命令行下執行
php判斷解析php服務是由那種服務器軟件,是采用那種協議 直接輸出即可
代碼如下:
<?php
echo PHP_SAPI;
?>
我的測試環境是nginx+fastcgi 輸出結果為:
cgi-fcgi
如果是apache 運行環境,輸出結果為
apache2handler
如果是命令行的形式執行,結果為
cli
這就是PHP_SAPI
php_sapi_name() 是用來檢測PHP運行環境的函數。
該函數返回一個描述PHP與WEB服務器接口的小寫字符串。
返回描述 PHP 所使用的接口類型(the Server API, SAPI)的小寫字符串。 例如,CLI 的 PHP 下這個字符串會是 “cli”,Apache 下可能會有幾個不同的值,取決於具體使用的 SAPI。 以下列出了可能的值: aolserver、apache、 apache2filter、apache2handler、 caudium、cgi (直到 PHP 5.3), cgi-fcgi、cli、 continuity、embed、 isapi、litespeed、 milter、nsapi、 phttpd、pi3web、roxen、 thttpd、tux 和 webjames。
SAPI: 服務器端API,貌似和CGI是一個東西。每個服務器提供的API可能不同,但是他們都提供了CGI。 所以可以理解CGI是每個服務器都應該有的SAPI。apache有自己的SAPI,IIS也有自己的。但是php能在這些不同的服務器端工作,因為php支持了它們各自的SAPI。 PHP-CLI: php命令行接口,php可以工作在這種模式下也可以CGI模式。是SAPI的一種,它和CGI提供的功能差不多。
php官方文檔 :http://php.net/manual/zh/reserved.constants.php
php官方文檔 :http://php.net/manual/zh/reserved.constants.php
+++++++++++++++++++++++++++++++++++++++++++++++++++
如何判斷PHP的運行環境?
閱讀ci代碼過程中發現,處理URI會根據php的運行環境進行不用處理。
那麼如何判斷php的運行環境呢?
我們一般情況下,都是在apache下面運行我們的php程序,當然也有些人是用IIS環境的。
我們要是想知道我們目前運行的環境是什麼的話,那我們可以用函數php_sapi_name()來測試,
代碼:
?


1


2



<!?php <br ?>
echo
php_sapi_name();


?&gt;


在apache環境下面輸出的結果是“apache2handler”;
在cgi模式下輸出的結果是“cgi-fcgi”
要是在命令行模式下面運行的話,那麼輸出的結果是:”cli”
依據這個內容我們可以判斷當前運行的環境是什麼!
那麼在命令行下怎麼運行呢?
如下:
進入DOS 進入php.exe文件的地址 如我的是:d:/wamp/bin/php/php5.3.3/
然後輸入php.exe “文件的絕對路徑” 如:>php.exe d:/wamp/www/info.php
就可以了。

熱門文章