将 <br /> 转换为新行,以便在文本区域中使用

2022-08-30 10:10:33

如果我有一个变量:

$var1 = "Line 1 info blah blah <br /> Line 2 info blah blah";

和文本区域:

<textarea>echo $var1</textarea>

如何让文本区域显示新行,而不是在单个像中包含 a 的序列上显示文本?<br />

编辑:我尝试了以下方法:

<textarea class="hobbieTalk" id="hobbieTalk" name="hobbieTalk" cols="35" rows="5" onchange="contentHandler('userInterests',this.id,this.value,0)"><?php

$convert=$_SESSION["hobbieTalk"];
$convert = str_replace("<br />", "\n", $convert);
echo $convert;

?></textarea>

但是,文本区域仍包含行中的标记。br


答案 1

试试这个

<?php
    $text = "Hello <br /> Hello again <br> Hello again again <br/> Goodbye <BR>";
    $breaks = array("<br />","<br>","<br/>");  
    $text = str_ireplace($breaks, "\r\n", $text);  
?>  
<textarea><?php echo $text; ?></textarea>

答案 2

我使用以下结构转换回nl2br

function br2nl( $input ) {
    return preg_replace('/<br\s?\/?>/ius', "\n", str_replace("\n","",str_replace("\r","", htmlspecialchars_decode($input))));
}

在这里,我替换了和符号从$input因为nl2br dosen不会删除它们,这会导致错误的输出与或.\n\r\n\n\r<br>


推荐