博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nl2br()与nl2p()函数,php在字符串中的新行(\n)之前插入换行符
阅读量:6089 次
发布时间:2019-06-20

本文共 1437 字,大约阅读时间需要 4 分钟。

   使用情景

很多场合我们只是简单用textarea获取用户的长篇输入,而没有用编辑器。用户输入的换行以“\n”的方式入库,输出的时候有时候会没有换行,一大片文字直接出来了。这个时候可以根据库里的“\n”给文字换行。PHP有自带的函数nl2br(),我们也可以自定义函数nl2p()。

先来看看nl2br() 函数吧。

定义和用法

 函数在字符串中的每个新行 (\n) 之前插入 HTML 换行符 (<br />)。

一个简单的例子:

运行结果的HTML代码:    Welcome to 
www.nowamagic.net
nl2p nl2br 有个缺点,比如要用CSS做到段落缩进就比较麻烦,这个时候就需要 nl2p 了。将br换行换成段落p换行,比较简单是直接替换:  
" . str_replace("\n", "

", $text) . "

"; } ?>

比较详细的函数,可以试下:

/**     * Returns string with newline formatting converted into HTML paragraphs.     *     * @param string $string String to be formatted.     * @param boolean $line_breaks When true, single-line line-breaks will be converted to HTML break tags.     * @param boolean $xml When true, an XML self-closing tag will be applied to break tags (
). * @return string */ function nl2p($string, $line_breaks = true, $xml = true) { // Remove existing HTML formatting to avoid double-wrapping things $string = str_replace(array('

', '

', '
', '
'), '',$string); // It is conceivable that people might still want single line-breaks // without breaking into a new paragraph. if ($line_breaks == true) return '

'.preg_replace(array("/([\n]{2,})/i","/([^>])\n([^<])/i"), array("

\n

", '

'), trim($string)).'

'; else return '

'.preg_replace("/([\n]{1,})/i", "

\n

", trim($string)).'

'; }

https://www.cnblogs.com/hejianrong/p/5802010.html

你可能感兴趣的文章
无限回复与回复引用设计与实施
查看>>
百度地图 IOS sdk 错误总结
查看>>
Weex学习第三篇:模版,样式,脚本
查看>>
高层吊运机在吊运过程中的常见故障排除法
查看>>
oracle mysql5.7 Json函数
查看>>
ajax结合js实现服务器
查看>>
javascript 日期 获取周等
查看>>
c++连接数据库
查看>>
前端开发框架整理
查看>>
集群之MYsql主从服务之引伸出Mysql互为主从(环形结构)外加简单实现自己个人的负载均衡器(3)...
查看>>
Centos7重置Mysql 8.0.1 root 密码
查看>>
多线程测试工具(GroboUtils)的使用
查看>>
5分钟学会 Thymeleaf 的基本使用
查看>>
tensorflow初探-checkpoint转换成pb
查看>>
Xcode5的Retina屏幕
查看>>
求一个整形数组中一个index,index左边的和 等于index 右边的和
查看>>
买MyEclipse送书活动|《Effective Java中文版(第2版)》《Java编程思想(第
查看>>
微信浏览器取消缓存的方法
查看>>
JSP 结构
查看>>
由&引发的转义问题
查看>>