Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果站点作为CLI运行,为什么它不会将自己标识为CLI?_Php_Command Line Interface - Fatal编程技术网

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)访问。