我使用textarea在我的网站上写评论。注释保存在SQLite DB中。
我的问题是当我尝试从数据库中检索我的评论时,为了用<p>
标签替换每个回车(在显示给用户之前)。
我首先尝试nl2br
功能,但它运行正常,我的代码中出现了很多<br/>
。
然后我尝试了:
substr_count($article->texte, '\n');
substr_count($article->texte, '\r');
但返回结果始终为0
。这让我感到惊讶,因为我认为nl2br
会取代\n
和\r
字符。
我错过了什么吗?
mb_detect_encoding($article->texte); //returns UTF8
答案 0 :(得分:1)
仅在使用双引号时才会计算\ n和\ r \ n等表达式,因此请尝试“\ n”和“\ r”
答案 1 :(得分:1)
你需要理解PHP在字面上解释单引号内的文本,但扩展双引号内的内容;如果你这样做,你会得到不同的结果
substr_count($article->texte, "\n");
要回答你的问题,使用nl2br是最快的,但如果你真的想用“&lt; / p&gt;&lt; p&gt;”替换“\ n”的每一个出现位置然后做:
$content = str_replace("\n", '</p><p>', $content);