if(file_exists("news/Main News.xml"))
在通过cron运行时返回FALSE
,但在从浏览器运行时返回TRUE
。
是否因为文件名中有空格而发生,但浏览器运行时运行正常。
答案 0 :(得分:2)
最有可能的原因是cron作业没有从正确的文件夹中运行。
您需要执行类似
的操作 if(file_exists("/home/path/to/news/Main News.xml"))
(引号中的完整路径)
或做一个
cd /home/path/to;php cron_file.php
答案 1 :(得分:1)
不是在cronjob中调用php,而是调用一个调用php文件的shell脚本。
然后您可以更改脚本运行的环境,无需更改cronjob,您可以更轻松地测试驱动cron命令(因为您可以调用shell脚本)。
然后,您可以在shell脚本中更改php脚本期望的目录,这将最有效地解决您的问题。