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

时间:2010-09-30 11:25:55

标签: php

什么是最干净的方法来判断PHP是通过POST调用的,而不是来自html(在web broser下)

谢谢,

3 个答案:

答案 0 :(得分:5)

如果我正确理解你的问题,那不是关于http与命令行调用,而是浏览器与“非浏览器”(例如通过curl,wget等)调用。没有办法检查这个,因为wget等在技术上是浏览器,它们恰好没有GUI。您可以尝试检查HTTP_USER_AGENT,但这完全不可靠,因为没有办法强制客户端正确识别自己。

答案 1 :(得分:2)

答案 2 :(得分:1)

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());
}