我有一个包含字符串的数组。字符串应有换行符。我的代码生成的文本不是标签。如何在HTML中创建一个创建换行符的标签?
<?php return array(
....
'subtitle' => nl2br("My Sentence shall have a \n line break right there") ,
...
);
<title><?php echo htmlspecialchars($CONFIG['subtitle']); ?></title>
结果
My Sentence shall have a <br> line break right there
答案 0 :(得分:1)
htmlspecialchars不执行
&#34; \ n&#34; =&GT; &#34;&LT峰; br /&GT;&#34;
http://php.net/htmlspecialchars
执行的翻译是:
'&' (ampersand) becomes '&' '"' (double quote) becomes '"' when ENT_NOQUOTES is not set. "'" (single quote) becomes ''' (or ') only when ENT_QUOTES is set. '<' (less than) becomes '<' '>' (greater than) becomes '>'
编辑:正如下面的评论所说,http://php.net/nl2br是最佳解决方案。
您需要使用str替换或正则表达式替换或其他东西: http://php.net/manual/en/function.str-replace.php
答案 1 :(得分:1)
使用以下代码更改您的代码:
<?php return array(
....
'subtitle' => "My Sentence shall have a \n line break right there",
...
);
<title><?php echo nl2br(htmlspecialchars($CONFIG['subtitle'])); ?></title>
答案 2 :(得分:1)
正如大多数答案所示,请删除htmlspecialchars
部分。此外,对于不仅仅识别\n
的环境,您的\r\n
应替换为\n
。更新的代码应如下所示:
<?php return array(
....
'subtitle' => nl2br("My Sentence shall have a \r\n line break right there") ,
...
);
<title><?php echo $CONFIG['subtitle']; ?></title>
希望有所帮助。
答案 3 :(得分:0)
如果您跳过htmlspecialchars
,则会获得所需的行为
echo $CONFIG['subtitle'];
它取代了你的标签,因此它们可以用html打印,你不想要那个