2010-09-30 59 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()); 
} 
相關問題