cron job不会打开file_get_contents

时间:2012-02-11 15:22:57

标签: php cron file-get-contents

我正在运行一个使用file_get_contents的php脚本,以便将列表中的内容邮寄到该远程文件中。 如果我手动运行脚本一切正常,但当我离开它并等待cron运行时它不会得到那个远程内容.....这可能吗? 我在这里复制一些我认为问题所在的代码:

$flyer = file_get_contents('flyer.html');

$desti = $firstname." ".$lastname;

$mail = new phpmailer();

$mail->IsSMTP();
$mail->CharSet = 'UTF-8';
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Host = "orion.xxxx.com"; // line to be changed
$mail->Port = 465; // line to be changed
$mail->Username = 'bob@xxxx.com'; // line to be changed
$mail->Password = 'xxxx90'; // line to be changed
$mail->FromName = 'Bob'; // line to be changed
$mail->From = 'bob@xxxx.com';// line to be changed

$mail->AddAddress($email, $desti);

$mail->Subject = 'The Gift Store';    // to be changed



if ($cover_form == '1'){ $mail->MsgHTML($long10);} else
if ($cover_form == '2'){ $mail->MsgHTML($customer);} else
if ($cover_form == '3'){ $mail->MsgHTML($freedoers);} else
if ($cover_form == '4'){ $mail->MsgHTML($freelongform);}  else
if ($cover_form == '5'){ $mail->MsgHTML($freestoreshort);}  else
if ($cover_form == '6'){ $mail->MsgHTML($getasiteshort);}  else
if ($cover_form == '7'){ $mail->MsgHTML($flyer);}  
else {}

4 个答案:

答案 0 :(得分:8)

cron不会从您所在的“文件夹”加载代码,因此您需要指定完整路径

$flyer = file_get_contents(dirname(__FILE__) . DIRECTORY_SEPARATOR . "flyer.html");

答案 1 :(得分:4)

当cron执行

时,文件的路径不同

尝试

$flyer = file_get_contents(__DIR__ . '/flyer.html');

或者自己指定路径

答案 2 :(得分:1)

尝试这样:

file_get_contents('flyer.html', true);

答案 3 :(得分:0)

您应确保将输出和错误重定向到文件,这样您就可以了解cron运行时脚本的运行情况。

crontab中的命令如下所示:

php /path/to/your/script.php >/tmp/log.txt 2>&1


但是,查看您的代码,我建议您使用绝对路径来打开flyer.html文件,这样即使从包含该文件的目录的另一个目录启动,您的脚本也能正常工作。