[英]PHP Command-line script exits on false
我在PHP命令行中运行循环脚本,该脚本使用PHPMailer向客户发送电子邮件。 我收到的问题是,当PHPMailer返回false时,命令行脚本退出。
这是脚本伪代码:
while(the loop is valid){
if(mail ID exists){
set_time_limit(30);
..compose mail..
if($mail->Send()){
..Mark as success in database..
usleep(10000);
} else {
..Mark as failure in database..
usleep(10000);
}
}
..continue loop..
}
如果$mail->Send()
返回false,则脚本停止并退出。 这是PHP在命令行中的预期行为吗? 如果是这样,有什么方法可以告诉PHP在收到错误消息时不要停止?
感谢您的任何帮助。
我猜$mail->Send()
函数(或其他完全错误)抛出了一个错误,该错误停止了脚本的执行。
我认为值也不会在数据库中更新? 如果是这样的话。 运行具有错误报告功能的脚本来确定这一点。
error_reporting(E_ALL);
ini_set('display_errors', true);
错误处理例程(在else分支中)最有可能exit
或导致致命错误,使php退出紧急状态。
添加两行调试输出,以检查脚本是否成功进入和离开else分支。
while(the loop is valid){
[...]
} else {
error_log('Debug: Send() failed. Start error handling');
..Mark as failure in database..
usleep(10000);
error_log('Debug: Send() failed. End error handling');
}
[...]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.