相当于$ _SERVER ['DOCUMENT_ROOT'],当cron调用脚本时它会起作用?

sbu*_*uck 5 php

我正在使用$_SERVER['DOCUMENT_ROOT']我的包含路径,所以文件将找出它们的运行位置(即它们是在现场还是暂存)并且它工作正常,除了由cron运行的脚本,我必须对路径进行硬编码.

我可以使用另一个可以在cron和浏览器中使用的变量吗?

Rou*_*len 12

通过cron运行PHP脚本时,我认为它是在CLI的上下文而不是Web服务器上执行的.在从CLI执行PHP的情况下,$ _SERVER ['DOCUMENT_ROOT']未正确填充.您可以使用以下代码解决此问题:

if ($_SERVER['DOCUMENT_ROOT'] == "")
   $_SERVER['DOCUMENT_ROOT'] = dirname(__FILE__);
Run Code Online (Sandbox Code Playgroud)


zom*_*bat 5

以下内容将为您提供脚本所在的目录:

realpath(dirname(__FILE__));
Run Code Online (Sandbox Code Playgroud)

这适用于Web请求和cron脚本.