php - 将数组打印到电子邮件
问题描述
我在让我的 php 代码获取我创建的数组时遇到问题:
$size = array(
$_POST['wyxs'],
$_POST['wys'],
$_POST['wym'],
$_POST['wyl'],
$_POST['wyxl'],
$_POST['was'],
$_POST['wam'],
$_POST['wal'],
$_POST['waxl']
);
并将其作为可用数据放入从服务器发送给我的电子邮件中。截至目前,电子邮件只是说Size: Array
这是填充电子邮件内容的位:
$message = "You have received a new message from your website's contact form.\n\n"
. "Here are the details:\n
\nName: $name\n
\nEmail: $email\n
\nSize(s): $size\n
\nPackage(s): $package";
我相信我需要使用json_encode()
,但我不知道该放在哪里。我在这里看到了输出为 txt 文件的答案,但这不是我想要的。
错误日志报告:
PHP 注意:第 58 行 /home/bc8gq1bc8v7v/public_html/Orderscript.php 中的数组到字符串转换
其中第 58 行是该行"\nSize(s): $size\n"
我试过把这json_encode()
条线放在变量定义线下面。还尝试放置"\nSize(s)"
在线内。都没有奏效。
预期:电子邮件阅读Size(s): 7 yxs
结果:电子邮件读取Size(s): Array
编辑: 7 是任意的。该值可以是客户在网站上针对任何给定尺寸/颜色选择的衬衫输入的任何数字 0-10。
编辑 2:参考网站 www.harbourgraphicsfl.com/dcecubs,html
编辑 3:在花了一整天盯着代码之后,我忘了把 .html 放在上面链接的末尾。
解决方案
您可以使用
$size = json_encode(array($_POST['wyxs'],$_POST['wys'],$_POST['wym'],$_POST['wyl'],$_POST['wyxl'],
$_POST['was'],$_POST['wam'],$_POST['wal'],$_POST['waxl']));
然后,电子邮件将包含以下内容:
Size(s): ["foo","bar","baz",...]
或者你可以使用implode()
:
$size = implode(", ", array($_POST['wyxs'],$_POST['wys'],$_POST['wym'],$_POST['wyl'],$_POST['wyxl'],
$_POST['was'],$_POST['wam'],$_POST['wal'],$_POST['waxl']));
电子邮件将包含:
Size(s): foo, bar, baz, ...