我有一个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执行上下文中访问脚本自己的文件名的替代方法吗?
谢谢!
使用__FILE__
或__DIR__
或dirname(__FILE__)
http://www.php.net/manual/en/language.constants.predefined.php
$argv[0]
将始终包含脚本的名称:http://www.php.net/manual/en/reserved.variables.argv.php