Which method to detect run mode of php script is more reliable?

后端 未结 2 1437
醉梦人生
醉梦人生 2021-01-24 19:38

I now to ways to detect weather php script runs in cli or web server mode:

if (defined(\'STDIN\'))

or:

if (isset($argc))


        
相关标签:
2条回答
  • 2021-01-24 20:03

    Neither. Check the value returned from php_sapi_name().

    0 讨论(0)
  • 2021-01-24 20:24

    $_SERVER['REQUEST_METHOD'] won't be set, due to the lack of a HTTP request. I think defined( 'STDIN' ) or isset( $argc ) are reliable too, though. If it was up to me, I'd probably go with the defined( 'STDIN' ), as I can imagine someone accidentally setting a value to $argc.

    The php_sapi_name function above seems to be another (the most reliable?) way of determining this, although I do think it'd be a good idea to read all the gotcha's: mind that different servers will give different answers.

    0 讨论(0)
提交回复
热议问题