我正在运行一个使用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 {}
答案 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
文件,这样即使从包含该文件的目录的另一个目录启动,您的脚本也能正常工作。