尝试在电子邮件中打印一系列预订。
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条答案
按热度按时间yiytaume1#
你不能只是把PHP代码连接成一个字符串。你需要执行代码并连接字符串:
但是,执行以下操作之一(替换或加入)会更容易:
然后:
w46czmvw2#
当你连接字符串时,
.=
两边的表达式必须计算(或返回)一个字符串。foreach
不返回字符串。此外,echo
将数据发送到标准输出,而不是变量。您需要循环并在循环中对每个单独的项进行串联。
但说实话,我可以看到你实际上只是用换行符替换逗号。所以你可以保存爆炸和循环,只做一个字符串替换操作,这将直接将字符串中的一个字符替换为另一个字符:
文件:https://www.php.net/manual/en/function.str-replace.php