一:函数简介
这款函数其实主要用途就在文本框中输入内容,然后将之转义存储到数据库当中,还是那句话,一方面它是为了防止注入,另一方面将之存储为html形式,更好的展现给读者!
演示地址: http://www.ijquery.cn/phpfunction/Text2Html/demo1.php
下载地址: http://www.ijquery.cn/phpfunction/Text2Html/Text2Html.zip
二:函数代码
/** * 文本转HTML * * @param string $txt 需要转换的文本内容 * @return string */ if ( ! function_exists('Text2Html')) { function Text2Html($txt) { $txt = str_replace(" ", " ", $txt); $txt = str_replace("<", "<", $txt); $txt = str_replace(">", ">", $txt); $txt = preg_replace("/[\r\n]{1,}/isU", "<br/>\r\n", $txt); return $txt; } }
三:函数简介与用法
Text2Html($str);
在DEMO中返回的内容,表面看DEMO好像没有什么变化,但看源代码,我们就看到了区别。
没有转义前的代码是:
font color='red'><strong>原字符串显示的内容:</strong></font><越是熟的朋友,对话就越粗鲁;>越是熟的朋友,行为就越猥琐.这样的朋友有没有?
转入后的代码是:
<font color='red'><strong>经函数格式化的内容为:</strong></font><越是熟的朋友,对话就越粗鲁;>越是熟的朋友,行为就越猥琐.这样的朋友有没有?
很容易看到上边的区别,一个是 大于号> 和小于号< ,一个是 > 和 <。由于我们经过代码分析一下:
str_replace(" ", " ", $txt)
这句话的作用是将两个空格替换为一个中文空格
str_replace("<", "<", $txt)
这句话的作用是将小于号替换为<
str_replace(">", ">", $txt)
这句话的作用是将大于号替换为>
preg_replace("/[\r\n]{1,}/isU", "<br/>\r\n", $txt)
这句话的作用是将 []指匹配里边的任一字符(包括回车符\r与换行符\n),{1,}表示至少匹配1次,/是模式修正符(即匹配后边的内容) i 表示忽略大小写, s 表示将字符串视为单行,换行符做普通字符看待,使“.”匹配任何字符, U 表示匹配到最近的字符串。
其实意思就是“只要遇到回车符、换行符中的1个或者N个,不管大小写,都把它视为一行”且把它们替换为<br/>\r\n。
学习表面上看上去简单,其实是一件不容易的事情!!!