使用PHP将换行符传递到文本区域
我正在尝试列出电子邮件地址(每一个都在一行上)。我从数据库中提取数组,沿逗号分隔符分解它,并通过foreach循环运行它使用PHP将换行符传递到文本区域,php,html,Php,Html,我正在尝试列出电子邮件地址(每一个都在一行上)。我从数据库中提取数组,沿逗号分隔符分解它,并通过foreach循环运行它 $emailsList = ""; foreach($emails as $email) { $emailsList = $emailsList . "\n" . $email; } echo "Additional Report Emails<textarea name='showReportsEmails'>".$emailsList."</t
$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()
删除了每行的空格。不,运气不好。仍然存在两个断开标记。我似乎无法摆脱他们。