Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.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脚本如何检测它是作为脚本还是从shell调用的?_Php_Shell_Scripting_Invoke - Fatal编程技术网

PHP脚本如何检测它是作为脚本还是从shell调用的?

PHP脚本如何检测它是作为脚本还是从shell调用的?,php,shell,scripting,invoke,Php,Shell,Scripting,Invoke,我在Web服务器上有一个PHP脚本 此文件由另一个程序通过shell调用,但它仍然可以由Web服务器运行以响应HTTP请求 脚本如何确定调用它的方式?有很多方法;我检查$\u服务器['HTTP\u主机]是否为空。我认为技术上正确的方法是查看php\u sapi\u name()是否返回cli如果它是从shell执行的,那么它就没有HTTP头,因为它不是从HTTP协议请求的。有一些环境变量可以检查。比如说 祝你好运我编写了许多在shell和web上下文中同时运行的应用程序, 这一行使它很容易 fu

我在Web服务器上有一个PHP脚本

此文件由另一个程序通过shell调用,但它仍然可以由Web服务器运行以响应HTTP请求


脚本如何确定调用它的方式?

有很多方法;我检查
$\u服务器['HTTP\u主机]
是否为空。我认为技术上正确的方法是查看
php\u sapi\u name()
是否返回
cli

如果它是从shell执行的,那么它就没有HTTP头,因为它不是从HTTP协议请求的。

有一些环境变量可以检查。比如说


祝你好运

我编写了许多在shell和web上下文中同时运行的应用程序, 这一行使它很容易

function isWEB()
         {
         return $GLOBALS['argc']===NULL;
         }

是的,那可能是最好的办法。
function isWEB()
         {
         return $GLOBALS['argc']===NULL;
         }