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

时间:2010-04-19 23:45:37

标签: php shell scripting invoke

我在网络服务器上有一个PHP脚本。

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

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

4 个答案:

答案 0 :(得分:3)

有很多方法;我检查$_SERVER['HTTP_HOST']是否为空。我认为技术上正确的方法是查看php_sapi_name()是否返回cli

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您可以检查某些环境变量。例如$_SERVER["REQUEST_METHOD"]

if (isset($_SERVER["REQUEST_METHOD"]))
   // run by server
祝你好运

答案 3 :(得分:0)

我写了很多在shell和web上下文中并发运行的应用程序, 而这一个衬垫很容易

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