从文本区域(和 fpdf)中的变量回显换行符

Echo line break from variable in textarea (and fpdf)

在我的数据库中

Linetext1 \r\nLinetext2

然后我fech数据:

while($row = $result->fetch_assoc()) {
   $mydata_array = $row['myrow'];
}

然后回声部分:

for ($i = 0; $i <5; ++$I){
     echo $mydata_array[$i];
}

但它确实在 textarea(和 fpdf)Linetext1 中输出 \r\nLinetext2。我确实按照其他问题

中的建议尝试了字符串替换
echo (str_replace('\r\n', '<br />', $mydata_array[$i]);

但后来我真的有

Linetext1 <br />Linetext2

感谢您的帮助!

解决方案

在谢尔盖的回答后,我使用了这个:

echo (str_replace(array('\r', '\n'), array("", "\n"), $mydata_array[$i]);

PS 使用 MultiCell 而不是单个 Cell 很重要

<br /> 标签在文本区域中是无用的,除非它是富文本编辑器区域(因此不完全是文本区域)——它需要 \n\r\n 换行符。 FPDF 也需要 \n 休息。您可能应该做的是将 \r\n 文字替换为实际的换行符:

echo (str_replace(array('\r', '\n'), array("", "\n"), $mydata_array[$i]);

编辑: 根据您的测试,\r 应该被完全清除,因为它只会混淆 FPDF 而不会增加任何实际价值。