雾,没有山河那么壮观,没有雨那么缠绵。它总是那么轻盈,那么淡雅,给人一种美的享受。陽光被层层叠叠的树叶过滤,漏到他身上变成了淡淡的圆圆的轻轻摇曳的光晕。
如果向数据库输入内容时,没有用到富文本编辑器。而用的 textarea 标签的话,那么内容中的换行就会以 '\n' 的形式记录到数据库中。再者,如果把内容输出到浏览器中时,浏览器不能识别 '\n' 换行符进行换行,会对用户的阅读造成一定的影响。虽然php提供了一个很好的解决函数 nl2br() ,但他只能插入一个<br> 标签,但如果我们想使用 <p></p> 标签换行的话,可以自定义一个函数 nl2p()
php nl2p() 自定义函数
注意:nl2p(),为一个自定义函数,因为它的功能与 nl2br() 相似,所以很多PHP编程者都喜欢命名为 nl2p()。
函数代码:
nl2p():将字符串中的换行符'\n',转换成 <p></p> 标签
function nl2p($string, $line_breaks = true, $xml = true){ $string = str_replace(['<p>', '</p>', '<br>', '<br />'], '', trim($string)); if ($line_breaks == true) { return '<p>' . preg_replace(array("/([\n]{2,})/i", "/([^>])\n([^<])/i"), array("</p>\n<p>", '<br' . ($xml == true ? ' /' : '') . '>'), $string) . '</p>'; } else { return '<p>' . preg_replace("/([\n|\r\n])/i", "</p>\n<p>", $string) . '</p>'; } }
参数说明:
$string:要处理的字符串
$line_breaks:为 TRUE 时,单行换行将转换为HTML换行标记<br>或<br/>。
$xml:如果为 true,使用 <br/> (xml语法)标签,否则使用 <br> (html语法)标签
php nl2p() 自定义函数使用示例
1、php把一段字符转换成 <p></p> 换行
代码:
<?php $str = "hello \n word!"; echo nl2p($str,false); ?>
运行结果(需要查看源码):
<p>hello </p> <p> word!</p>
2、将所有字符串作用一段,并用<br/>换行
代码
<?php $str = " \n http://www.feiniaomy.com!"; echo nl2p($str); ?>
浏览器输出样式:
http://www.feiniaomy.com!
查看源码:
<p><br />http://www.feiniaomy.com!</p>
3、使用<br>换行
代码:
<?php $str = "举头望明月, \n 低头思故乡!"; echo nl2p($str,true,false); ?>
浏览器输出样式:
举头望明月, 低头思故乡!
查看源码:
<p>举头望明月,<br>低头思故乡!</p>
4、如果有两个连续的换行符,则另起一段.
代码:
<?php $str = "不敢高声语, \n\n 恐惊天上人!"; echo nl2p($str,true,false); ?>
浏览器输出:
不敢高声语, 恐惊天上人!
查看源码:
<p>不敢高声语, </p> <p> 恐惊天上人!</p>
本文php nl2p() 自定义函数到此结束。克服困难,勇敢者自有千方百计,怯懦者只感到万般无奈。小编再次感谢大家对我们的支持!