我在网络服务器上有一个PHP脚本。
此文件由另一个程序通过shell调用,但它仍然可以由网络服务器运行以响应HTTP请求。
脚本如何确定调用它的方式?
答案 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;
}