天天看點

php的SAPI,CLI SAPI,CGI SAPI

首先一個問題:在指令行下執行:php -r 'echo 12;'

控制台會列印出 12;

這個過程不是很奇妙麼,我輸入的是shell指令,但是執行的卻是php腳本。php腳本執行完成之後的輸出還能在控制台輸出。

那在這個shell指令(控制台指令)和php中間一定有一種接口,能将shell的參數,代碼,等轉換成php,然後将php的輸出轉換成shell的輸出。這個接口就叫做SAPI(Server Application Programimg Interface)。它就相當于PHP外部環境的代理器。

那麼由于PHP可以應用在終端上,也可以應用在Web伺服器中,是以呢,應用在終端上的SAPI就叫做CLI SAPI,應用在Web伺服器中的就叫做CGI SAPI。在windows下安裝php你會看到兩個exe:php.exe和php-cgi.exe這個就對應的是這兩種SAPI。再比如,在控制台上使用php -v,你就會發現PHP的版本資訊中有個(cli)标示,就代表你這裡的php應用程式使用的是cli SAPI。

本文轉自軒脈刃部落格園部落格,原文連結:http://www.cnblogs.com/yjf512/p/3482040.html,如需轉載請自行聯系原作者