总结PHP中五种转义函数的使用
在网页级的应用中,转义是一个较常用的功能,这里先来简单的说一下为什么要使用转义函数吧,在企业级或者个人级的应用当中,基本上都会涉及到数据库的级别,比如夏日博客个人级的应用当然也是涉及到数据库了,而在添加文章的时候,肯定会有一些特殊字符插入到数据库当中的,比如像 (‘), (“), (), (NUL) 这些字符,但如果是直接插入数据库中的话,肯定会和SQL语句相冲突,所以这里需要进行一下转义,避开冲突,然后插入进去。
好了,关于特殊字符为什么要转义,这里就不多说了,下面主要介绍几个夏日博客工作当中用的频率较高的几个转义函数。
一,addslashes
主要在 SQL 插入之前使用,比如在 POST 或者 GET 之前先进行字符的转义,然后再进行插入,这个函数在 DBMS 没有自己转义函数的时候使用,但如果 DBMS 有自己的转义函数,哪么就推荐mysql的原装函数,比如 mysql_real_escape_string 函数来转义,注意一点的是,在插入之前,只转义一次就可以了,不需要重复转义。
二,htmlspecialchars
htmlspecialchars 也是一个较常用的转义字符,看函数的名称就知道主要是转义 html 中特殊字符的,其中包括 (&),(‘),(“),(<),(>) 等常用字符。这几个字符显然跟 SQL 是有较大冲突的,所以也是在 GET 或者 POST 之前进行转义和过滤的。不过需要注意的是 htmlspecialchars 函数只是把认为有危险的 html 字符进行转义,如果想要把所有的 html 字符都进行转义的话就可以使用 htmlentities 了。
三,htmlentities
这个函数用得频率较少一些,这是把 html 中可以转义的内容都转义为 html entity,而html_entity_decode为htmlentities的decode函数。这个不多作介绍了。
四,mysql_real_escape_string
关于 mysql 转义的函数,在使用的时候会调用 mysql 库函数 mysql_real_escape_string,对 (\x00), (\n), (\r), (), (‘), (\x1a) 等一些特殊进行转义,这个函数通常在操作库的时候使用,也就是在插入之前先在这些特殊字符前面加上反斜杠(),主要是为了预防SQL注入,比如可以过滤 www.xiariboke.net,(\r),注意在读取数据库的时候需要进行反转义,使用 stripslashes 函数。
五,strip_tags
strip_tags 函数也是一个较常用的函数,通常是用来过滤 html 或者 php 标签的时候使用的,有的时候,我们不希望读取数据库中的 html 所有内容,只要读出纯文本就行了,就可以直接使用 strip_tags 就可以了。
好了,一共就介绍这五个吧,也算是给自己一个小小的总结,在使用的时候方便查询使用。
学习了
不错。学习了。