2010-09-30 91 views
1

如何判断PHP是否通过POST调用,而不是通过html调用(在web broser下)如何判断PHP是在浏览器下运行还是作为独立脚本被调用

谢谢,

+0

可能重复[什么是规范的方式来确定PHP脚本的命令行与http执行?](http://stackoverflow.com/questions/173851/what-is-the-canonical-way-to-确定命令行与http-execution-of-a-php-sc) – 2010-09-30 11:30:55

+0

为了弄清楚事情...... POST中的HTTP/1.1方法与CLI不一样......站在什么意思 - 单独的脚本? – ChrisR 2010-09-30 11:32:07

回答

5

如果我正确理解你的问题,它不是http和命令行调用,而是浏览器与“非浏览器“(例如通过卷曲,wget等)呼叫。有没有办法检查这一点,因为wget等技术上的浏览器,他们只是不会有一个GUI。您可以尝试检查HTTP_USER_AGENT,但这是完全不可靠的,因为无法强制客户端正确识别自己。

+0

我想你说得对 – 2010-09-30 11:41:37

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()); 
} 
相关问题