从文本区域(和 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 而不会增加任何实际价值。
在我的数据库中
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 而不会增加任何实际价值。