为了账号安全,请及时绑定邮箱和手机立即绑定

打印电子邮件中的数组

打印电子邮件中的数组

PHP
交互式爱情 2022-08-19 10:03:57
尝试在电子邮件中打印一系列预订。PHP 如下所示:<?php  $checkbooking = $_POST['checkbooking']; // <--string of bookings separated by commas  $bookings = explode(',', $checkbooking); // <-- removing the commas  $to = "myemail@email.com";  $subject = 'list of bookings';  $headers = "From: do not reply" . "\r\n";  $headers .= "MIME-Version: 1.0\r\n";  $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";  $message .= "Booking Report<br /><br>";  $message .= '<html><body>';  $message .= '<h3>NVR Bookings</h3><br />';  $message .= foreach($bookings as $v){echo $v . "\n";}.'<br />';  // <-- my attempt to print the bookings  $message .= '<br />';  $message .= '<body></html>';  mail($to, $subject, $message, $headers);?>您在邮件中看到的 foreach 循环在电子邮件功能之外工作。但是一旦我把它放在电子邮件中,我就得到了一个500错误,这确实被隔离在电子邮件功能中的foreach中。如何更新电子邮件功能或foreach循环,以成功地连续显示预订?
查看完整描述

2 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

你不能只是将PHP代码连接成一个字符串。您需要执行代码并连接字符串:


$message .= '<h3>NVR Bookings</h3><br />';

foreach($bookings as $v){ $message .= "$v\n<br />"; }

$message .= '<br />';

但是,执行下列操作之一,替换或加入会更容易:


$bookings = str_replace(',', "\n<br />", $checkbooking);

//or

$bookings = implode("\n<br />", explode(',', $checkbooking));

然后:


$message .= '<h3>NVR Bookings</h3><br />';

$message .= $bookings;

$message .= '<br />';


查看完整回答
反对 回复 2022-08-19
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

串联字符串时,每边的表达式必须计算为(或返回)字符串。 不返回字符串。此外,将数据发送到标准输出,而不是发送到变量。.=foreachecho


您需要循环并在循环中对每个单独的项目进行串联。


$message .= '<h3>NVR Bookings</h3><br />';

foreach($bookings as $v){ 

  $message .= $v."\n<br />"; 

}

$message .= '<br />';

但说实话,我可以看到你实际上只是用换行符替换逗号。因此,您可以节省爆炸和循环,只需执行字符串替换操作,这将直接交换字符串中的一个字符:


$message .= '<h3>NVR Bookings</h3><br />';

$message .= str_replace(",", "\n", $checkbooking);

$message .= '<br />';

文档: https://www.php.net/manual/en/function.str-replace.php


查看完整回答
反对 回复 2022-08-19
  • 2 回答
  • 0 关注
  • 66 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信