方法来确定PHP是从shell运行还是在apache中运行


Methods to determine if PHP is running from a shell or within apache?

可能重复:
如何区分http请求和cli请求
哪种方法检测php脚本的运行模式更可靠?

确定php是从shell(cron或其他(运行还是在apache下运行的最佳方法是什么?

您可能会发现这很有用:http://php.net/manual/en/function.php-sapi-name.php

echo php_sapi_name()==="apache2handler"; //running under apache?

http://sandbox.phpcode.eu/g/5f9d5

如果您需要了解所使用的SAPI的确切信息,请参阅marcelog的回答。

如果您只需要知道是否有可用的HTTP环境,那么您可以简单地测试$_SERVER['HTTP_HOST']:

$is_web = isset($_SERVER['HTTP_HOST']);