我有一个PHP脚本,通过浏览器调用时可以很好地执行。但是,当它被称为cron作业时,它失败了。失败是因为脚本需要访问自己的文件名,我通过$thefilepath = $_SERVER['REQUEST_URI']
来完成。不幸的是,当文件作为cron作业调用时,不会填充$_SERVER['REQUEST_URI']
变量。 (我尝试$_SERVER['PHP_SELF']
)同样失败了。
如果有人感兴趣,脚本需要访问自己的文件名,因为文件名包含一个整数(例如,filename = myfile4.php
),用于计算数据库表中的行子集。更具体地说,myfile4.php
获取带有ID的行,例如40-49,而myfile5.php
获取ID为50-59等的行。
所以,我的问题是,鉴于$_SERVER['REQUEST_URI']
和$_SERVER['PHP_SELF']
无法提供用于cron作业的文件名(或文件路径),任何人都可以建议另一种访问脚本的方法这个cron执行上下文中的文件名?
谢谢!
答案 0 :(得分:5)
使用__FILE__
或__DIR__
或dirname(__FILE__)
http://www.php.net/manual/en/language.constants.predefined.php
答案 1 :(得分:0)
$argv[0]
将始终包含脚本的名称:http://www.php.net/manual/en/reserved.variables.argv.php