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代码
有时候用户提交数据中带有很多 HTML 标签,其实这些标签是没有用的,因为根本就没有给这些标签设置样式,仅仅是用户从别处复制来的,而最严重就是有人恶意提交代码,比如 Spam 提交很多评论,而这些内容中带有很多链接,我们可以通过 PHP 的 htmlspecialchars() 函数过滤掉这些不安全的标签。
function trans($string){
$string=htmlspecialchars($string);
$string = ereg_replace(chr(10), "
", $string);
$string = ereg_replace(chr(32), "", $string);
return $string;
}
更多字符串处理函数
显示在 WEB 页面,不过滤 HTML 代码;
function trans_web($string){
$string = ereg_replace(chr(10),"
",$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),"
",$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;
}