最近在學習PHP的寄送信件的程式
以下這一小段是程式碼
while($row_result=$sql_result->fetch_assoc()){
// ------------json轉換-------------
$json = $row_result["student_result"];
$arr = json_decode($json,true);
$student_result = "<br>";
foreach($arr as $key => $value){
$student_result = $key.":".$value;
}
$mail = new PHPMailer\PHPMailer\PHPMailer(); //建立新物件
$mail->IsSMTP(); //設定使用SMTP方式寄信
$mail->CharSet="UTF-8";//郵件編碼
$mail->Host = "smtp.gmail.com";//Gamil的SMTP主機
// $mail->SMTPDebug = 1;
$mail->Port = 465 ; //465 or 587 Gamil的SMTP主機的埠號(Gmail為465)。
$mail->SMTPSecure = 'ssl'; // Gmail的SMTP主機需要使用SSL連線
$mail->SMTPAuth = true;//設定SMTP需要驗證
$mail->IsHTML(true);
$mail->Username = "XXXXXXXXXXXXXX"; //Gamil帳號
$mail->Password = "XXXXXXXXXXXX"; //Gmail密碼
$mail->From = "XXXXXXXXXXXXXXXXXXXXX"; //寄件者信箱
$mail->FromName = "ABC"; //寄件者姓名
$mail->Subject = $report_Apply_time . "_". $mail_subject ; //郵件標題
$mail->Body = "成績寄送日期:" . $report_Apply_time.//郵件內容
"<br/>內容:" .$mail_text.
"<br/><br/>成績:".$student_result.
"<br/><br/>============================================================".
"<br/>「請注意:此郵件為系統傳送,請勿直接回覆!」".
"<br/>謝謝!";
$mail->IsHTML(true); //郵件內容為html
$title = $report_Apply_time . $mail_subject . $student_name;
$mail->AddAddress($row_result["student_mail"], $title); //收件者郵件及名稱
if(!$mail->Send()){
echo "Error: " . $mail->ErrorInfo;
}
}
我的問題是,下面這段程式中裡面的$arr
有兩個值,但echo$student_result
出來或是寄出信件的時候都只有最後一個值,第一個值會被覆蓋掉,請問要如何讓foreach
裡的所有值顯示出來?
foreach($arr as $key => $value){
$student_result = $key.":".$value;
}
$student_result .= $key.":".$value. "___";
可參考
https://www.php.net/manual/zh/language.operators.string.php