php cron 文件名中有空格问题

发布于 2024-12-01 02:55:15 字数 162 浏览 3 评论 0原文

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

吻泪 2024-12-08 02:55:15

这很可能是由于 cron 作业没有从正确的文件夹运行引起的。

您要么需要执行类似的操作

    if(file_exists("/home/path/to/news/Main News.xml"))

(在引号中包含完整路径)

,要么执行

    cd /home/path/to;php cron_file.php

Most likely this is caused by the cron job not being run from the correct folder.

You either need to do something like

    if(file_exists("/home/path/to/news/Main News.xml"))

(with the full path in the quotes)

or do a

    cd /home/path/to;php cron_file.php
等往事风中吹 2024-12-08 02:55:15

不要从 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文