簡體   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