我有一个脚本,可以与cron, HTTP请求(浏览器)或从另一个脚本启动。如何确定从何处启动脚本?
您可以查看一些信息来查找:
常量PHP_SAPI
将告诉您正在运行哪个PHP解释器/接口-常见的SAPI的名称在php_sapi_name
对于命令行脚本,您应该能够通过组合使用posix_isatty函数和检查$_SERVER['TERM']
解决这个问题最简单的方法是向脚本传递一个参数。这将使您能够高度控制信息的格式,并且(相当)安全。
不确定,这是你想要的吗?
Cron:
php -q /dir/my_script.php cron
HTTP:
http://dir/my_script.php?arg=web
PHP: if (!empty($argv[0]))
{
echo "local";
}
elseif(isset($_GET['arg']))
{
echo "web";
}
else
{
echo "Others"
}