php cron 文件名中有空格问题
if(file_exists("news/Main News.xml"))
在通过 cron 运行时返回 FALSE
,但在从浏览器运行时返回 TRUE
。
发生这种情况是因为文件名中存在空格,但在浏览器运行时运行正常。
if(file_exists("news/Main News.xml"))
returns FALSE
when run through cron, but returns TRUE
while run from browser.
Is it happening because of white space in filename but it is running ok with browser run.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这很可能是由于 cron 作业没有从正确的文件夹运行引起的。
您要么需要执行类似的操作
(在引号中包含完整路径)
,要么执行
Most likely this is caused by the cron job not being run from the correct folder.
You either need to do something like
(with the full path in the quotes)
or do a
不要从 cronjob 中调用 php,而是调用一个 shell 脚本来调用 php 文件。
然后,您可以更改脚本运行的环境,而无需更改 cronjob,并且您可以更轻松地测试 cron 命令(因为您只需调用 shell 脚本)。
然后,您可以在 shell 脚本中更改 php 脚本所在的目录,这肯定会解决您的问题。
Instead of calling the php from within the cronjob, call a shell script which is calling the php file then.
You can then change the environment the script is running in w/o the need to change the cronjob and you can easier test-drive the cron command (as you can just call the shell-script).
You can then, in the shell script, change the directory where the php-script expects to be in which will most certainly solve your issue.