使用PHP将换行符传递给textarea

时间:2015-11-02 22:02:32

标签: php html

我正在尝试列出一个电子邮件地址列表(每一个都在新行上)。我从数据库中拉出数组,沿着逗号分隔符将其展开,然后通过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

谢谢!

3 个答案:

答案 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