Php 如果站点作为CLI运行,为什么它不会将自己标识为CLI?
我正在开发的站点只有以下内容:Php 如果站点作为CLI运行,为什么它不会将自己标识为CLI?,php,command-line-interface,Php,Command Line Interface,我正在开发的站点只有以下内容: echo php_sapi_name(); 现在,我从CMD运行以下命令: php -d display_errors=1 -r "echo file_get_contents('http://site');" 它返回apache2handler,而不是cli。为什么?运行以下命令时: php -d display_errors=1 -r "echo file_get_contents('http://site');" 实际上,您正在从Apache(使用HT
echo php_sapi_name();
现在,我从CMD运行以下命令:
php -d display_errors=1 -r "echo file_get_contents('http://site');"
它返回
apache2handler
,而不是cli
。为什么?运行以下命令时:
php -d display_errors=1 -r "echo file_get_contents('http://site');"
实际上,您正在从Apache(使用HTTP协议)加载该文件。这就是为什么您得到的是apache2handler
,而不是cli
。PHP脚本在Apache下运行。这与访问http://site
通过一些浏览器。在本例中,PHP客户端充当浏览器
如果需要从PHP客户端运行脚本,则必须通过以下方式从命令行调用脚本:
php file.php
您需要从文件系统访问该文件。使用上面的命令,我假设您与脚本位于同一目录中。您正在通过
http
获取文件,Apache正在为其提供服务。那么如何正确运行?:)抱歉,我是CMD新手要获得cli
作为php_sapi_name
的输出,您必须直接从php客户端运行该文件:php file.php
。顺便说一句,我假设您可以通过文件系统访问该文件,而不仅仅是从Apache(http)访问。