使用PHP将换行符传递到文本区域

使用PHP将换行符传递到文本区域,php,html,Php,Html,我正在尝试列出电子邮件地址(每一个都在一行上)。我从数据库中提取数组,沿逗号分隔符分解它,并通过foreach循环运行它 $emailsList = ""; foreach($emails as $email) { $emailsList = $emailsList . "\n" . $email; } echo "Additional Report Emails<textarea name='showReportsEmails'>".$emailsList."</t

我正在尝试列出电子邮件地址(每一个都在一行上)。我从数据库中提取数组,沿逗号分隔符分解它,并通过foreach循环运行它

$emailsList = "";
foreach($emails as $email)
{ 
    $emailsList = $emailsList . "\n" . $email;
}
echo "Additional Report Emails<textarea name='showReportsEmails'>".$emailsList."</textarea>";
$emailsList=”“;
foreach($email作为$email)
{ 
$emailsList=$emailsList.“\n”。$email;
}
回显“其他报告电子邮件”。$emailsList.”;
当我查看textarea本身时,它会在textarea中显示换行标记。我能做些什么来摆脱这个问题,让文本按照我想要的方式运行

<br />
email1@gmail.com<br />
 email2@gmail.com

email1@gmail.com
email2@gmail.com

谢谢

名称表明元素只能容纳文本。它不作为
HTML
解析,而是作为文本解析

我测试了这段代码:

<?php
$value = "Hello,\nname\nis\nScript47.";

echo "<textarea>$value</textarea>";
?>

输出

编辑1:


您还可以使用
\r
查看它是否有用。

您应该在文本区域中使用回车,而不是HTML代码。
\r

在文本区域打印结果时,PHP新行(
\n
)将转换为

s。因此,可能有一个nl2br()函数用于将结果输出到textarea。它应该通过移除它来修复。否则,您可以在设置textarea的内容时使用以下代码:

<textarea><?php echo implode("\n", array_map('trim', explode("\n", strip_tags($emailsList)))); ?></textarea>


上面的代码首先从
$emailsList
变量中删除所有html标记,然后还删除行前后的空格,因此您最好使用它。

有什么用处吗?有趣。这删除了一个中断,但不是两个都删除了。@AKor我不知道它是否因为我犯了一个愚蠢的错误而不起作用。我忘了包含PHP标记并回显输出。你能检查一下更新的代码吗?@AKor我再次更新了代码,而不是
trim()
,它似乎在删除内容开头和结尾的空格,我使用
infrade()
array\u map()
explode()
删除了每行的空格。不,运气不好。仍然存在两个断开标记。我似乎无法摆脱他们。