php的SAPI,CLI SAPI,CGI SAPI

首先一个问题:在命令行下执行:php -r 'echo 12;'php

控制台会打印出 12;shell

这个过程不是很奇妙么,我输入的是shell命令,可是执行的倒是php脚本。php脚本执行完成以后的输出还能在控制台输出。windows

那在这个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。.net

关于CLI SAPI:手册上有很详细的说明:http://php.net/manual/zh/features.commandline.php命令行

相关文章
相关标签/搜索