php_sapi_name()的替代方案对Google App Engine有用吗?

时间:2015-09-25 11:03:50

标签: php

如何在不使用php_sapi_name()的情况下确定脚本是从CLI还是CGI(包括Google App Engine)运行?

编辑:不依赖于未定义的行为。

Google App Engine说:

 php_sapi_name() has been disabled for security reasons

虽然我可以在php.ini中重新启用它,但我不愿意,尤其是。因为我找不到陈述的安全理由。

编辑:if(isset($ argv [1]))似乎有效,但依赖于CGI中$ argv的未定义行为。 http://php.net/manual/en/reserved.variables.argv.php

1 个答案:

答案 0 :(得分:0)

检查$_SERVER超全局变量以获取以下值之一:

  • REQUEST_METHOD
  • SERVER_ADDR
  • SERVER_SOFTWARE
  • SERVER_NAME
像这样:

if (!isset($_SERVER['SERVER_ADDR'])) {
     echo 'this is run on the cli';
}

如果您想检查google-app引擎,请根据他们的文档$_SERVER['APPLICATION_ID'];

尝试12:00