我正在尝试列出一个电子邮件地址列表(每一个都在新行上)。我从数据库中拉出数组,沿着逗号分隔符将其展开,然后通过foreach循环运行它。
$emailsList = "";
foreach($emails as $email)
{
$emailsList = $emailsList . "\n" . $email;
}
echo "Additional Report Emails<textarea name='showReportsEmails'>".$emailsList."</textarea>";
当我查看textarea本身时,它将逐字显示textarea中的换行标记。我该怎么做才能摆脱这种情况并让文字表现得像我想要的那样?
<br />
email1@gmail.com<br />
email2@gmail.com
谢谢!
答案 0 :(得分:2)
看起来在textarea中打印结果时,PHP新行(\n
)将转换为<br/>
s。所以,也许有一个nl2br()函数用于将结果输出到textarea中。它应该通过删除它来解决。否则,您可以在设置textarea的内容时使用以下代码:
<textarea><?php echo implode("\n", array_map('trim', explode("\n", strip_tags($emailsList)))); ?></textarea>
上面的代码首先从$emailsList
变量中删除所有html标记,然后删除行前后的空格,这样你就可以使用它了。
答案 1 :(得分:0)
该名称表明该元素只能保存文本。它不会解析为HTML
,而是以文本形式解析。
我测试了这段代码:
<?php
$value = "Hello,\nname\nis\nScript47.";
echo "<textarea>$value</textarea>";
?>
<强>输出强>
修改1:
您还可以使用\r
查看是否有帮助。
答案 2 :(得分:0)
您应该在textarea中使用回车符而不是HTML代码。
\r