所以我试图让nl2br
工作,但它不会像我希望的那样工作。
当它从数据库中检索文本时,我希望它能够识别nl2br
我有htmlspecialchars
的\ n,这是它不起作用的原因。我该如何解决这个问题?
我的代码: post变量看起来像这样
$post = nl2br($row['p_post']);
这意味着它最终会在htmlspecialchars()
内
echo '<p>'.htmlspecialchars($post, ENT_QUOTES).'</p>;
我试着像echo '<p>'.nl2br(htmlspecialchars($post, ENT_QUOTES)).'</p>;
这样说,但结果看起来好像根本没有nl2br
。
我已经添加了nl2br
答案 0 :(得分:0)
您对代码进行了双重编码:
$foo = "how\ndoes\nthis\nlook";
$post = nl2br($foo); // $post is now "how<br>does<br>this<br>look"
$temp = nl2br(htmlspecialchars($post)); // $temp is now "how<br>does etc..."
echo '<p>how<br>does< etc...';
您将换行符转换为break标记,然后html将break标记编码为html字符实体,因此您的浏览器会将这些标记呈现为“可视”标记,而不是HTML换行符。
答案 1 :(得分:0)
这是固定的,似乎另一个变量以某种方式与它相撞,因此它实际上不会生成<br>
标签。