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