-2

我完全被难住了。我有一个文件,我需要每天运行两次,查询数据库并在满足某些条件时向我发送电子邮件。

这个文件,我们称之为 abc.php,如果我在浏览器中输入“www.mysite.com/abc.php”,文件运行完美。如果满足条件,我会收到一封电子邮件,上面写着(例如)“某某,这是信息:a、b、c。”

但是当我用 cron 调用文件时,由于某种原因,电子邮件出现了乱码。我得到“某某,这是信息部分”,但没有得到“a,b,c”。

我完全被难住了。“某某”也来自数据库,因为这两个地方都显示了我知道数据库查询正在工作。

我不明白为什么某些东西在 http 调用中可以正常工作,但在通过 cron 调用时却不能正常工作。是否有应该以不同方式设置的权限?以不同方式描述的目录树?我应该使用完整路径而不是相对路径吗?

在搜索中,我发现一个似乎与 php.ini 文件不同的问题,但我认为情况并非如此,因为我得到了一个数据库查询。我不认为这是一个编码问题,因为它在从浏览器调用时可以完美运行。但我确实怀疑这可能是由于路径设置不正确或 cron 作为不同用户运行或需要不同权限造成的。

任何帮助或建议都会很棒。

编辑:这是 cron 行。当我从浏览器运行文件时,我可以编辑它以匹配正在使用的任何 php.ini 吗?

/ramdisk/bin/php5 -c /my/home/php.ini /my/home/sendmetheemail.php

它是否也有可能使用不同的mysql配置文件?php 部分似乎工作正常,但问题在于数据。

刚刚测试并且 wget 工作正常:

wget http://mydomain.com/sendmetheemail.php
4

1 回答 1

0

您有一个文件,您假设应该以相同的方式运行,但会产生不同的结果,因此显然您的假设是错误的。

当我遇到这种困境时,我syslog(LOG_INFO,"Display some data.");在我的代码中使用了一堆行。直接通过 cron verse 运行时检查它们之间的结果。如果一切都一样,那么您还没有遇到问题。

于 2013-03-30T13:34:17.913 回答