PHP 插入数据库一般我们都会处理一下,一般会把一些字符转义,防止 SQL 注入和服务器入侵,PHP 自带了多个处理字符串的函数,我们一起来看看。
入库时
- $str=addslashes($str);
- $sql="insert into `tab` (`content`) values('$str')";
出库时
- $str=stripslashes($str);
显示时
- $str=htmlspecialchars(nl2br($str));
对于标题、关键字和描述等字段的储存,我们必须去除字符串中的空格、换行和回车字符,保持纯文本的字符串即可。
- function trans_string_trim($str){
- $str = trim($str);
- $str = eregi_replace("'","''",$str);
- $str = stripslashes($str);
- return $str;
- }
有时候用户提交数据中带有很多 HTML 标签,其实这些标签是没有用的,因为根本就没有给这些标签设置样式,仅仅是用户从别处复制来的,而最严重就是有人恶意提交代码,比如 Spam 提交很多评论,而这些内容中带有很多链接,我们可以通过 PHP 的 htmlspecialchars() 函数过滤掉这些不安全的标签。
- function trans($string){
- $string=htmlspecialchars($string);
- $string = ereg_replace(chr(10), "<br>", $string);
- $string = ereg_replace(chr(32), "", $string);
- return $string;
- }
显示在 WEB 页面,不过滤 HTML 代码;
- function trans_web($string){
- $string = ereg_replace(chr(10),"<br>",$string);
- $string = ereg_replace(chr(32),"",$string);
- return $string;
- }
显示在 WEB 页面,过滤 HTML 代码及头尾空格,主要用于显示用户昵称
- function trans_trim($string){
- $string = trim($string);
- $string = htmlspecialchars($string);
- $string = ereg_replace(chr(10),"<br>",$string);
- $string = ereg_replace(chr(32),"",$string);
- return $string;
- }
显示在 span 中;
- function trans_span($string){
- $string = ereg_replace(chr(10),"n",$string);
- $string = ereg_replace(chr(32),"",$string);
- $string = ereg_replace('"',""",$string);
- return $string;
- }
在 WEB 上显示 cookie 过滤 html
- function trans_cookie($str){
- $str = trans($str);
- $str = stripslashes($str);
- $str = eregi_replace("''","'",$str);
- return $str;
- }