繁体   English   中英

PHP命令行脚本退出时为false

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM