php - 在电子邮件中打印数组
问题描述
尝试在电子邮件中打印一系列预订。
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 循环以成功在另一个下方连续显示预订?
解决方案
您不能只是将 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 />';
推荐阅读
- python - 使用 Python 和 Snowflake 进行列匹配
- r - 使用 R 为子集数据创建循环
- audio - 如何反转滑块的这个 ln 幂函数?
- node.js - 从 Nodejs8.x 升级到 Nodejs10.x 或 Nodejs12.x 出现错误 - 找不到模块“is-buffer”
- mysql - 许多查询并行运行。提交一个查询会影响其他所有查询吗?
- xaml - 如何阻止 Xamarin 初始化 XAML 中的每个视图?
- kubernetes - 模板 Chart.yaml 文件
- r - R分别对开始和结束向量列表进行向量化比较
- javascript - AG-GRID - 使用 restoreFilterModel 有效,但在恢复过滤器之前重绘整个网格
- c# - Parsing multidimensional arrays using JsonUtility