代码之家  ›  专栏  ›  技术社区  ›  tru7

如何判断PHP是在浏览器下运行还是作为独立脚本调用

php
  •  1
  • tru7  · 技术社区  · 14 年前

    如果PHP是通过POST调用的,而不是通过html调用的(在webbroser下),最干净的方法是什么

    3 回复  |  直到 14 年前
        1
  •  5
  •   user187291    14 年前

    如果我对你的问题理解正确的话,这不是关于http和命令行调用,而是关于浏览器和“非浏览器”(例如,通过curl、wget等)调用。没有办法检查这个,因为wget等等 从技术上讲,浏览器只是没有GUI。您可以尝试检查HTTP\u USER\u代理,但这是完全不可靠的,因为无法强制客户机正确标识自己。

        3
  •  1
  •   Svisstack    14 年前
    function __get_started_from_cli_state()
    {
        return substr(php_sapi_name(), 0, 3) == 'cli';
    }
    
    function __get_started_from_cgi_state()
    {
        return substr(php_sapi_name(), 0, 3) == 'cgi';
    }
    
    function __get_started_from_browser_state()
    {
        return !(__get_started_from_cli_state() ||
                 __get_started_from_cgi_state());
    }