重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
不用正则过滤,入库前用addslashes -- 添加反斜线引用字符串,纤饥乱该字符串为毁档了数据库查询语句等的需要在某些字符前加上了反斜线。如:单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)。肢毁
我们提供的服务有:网站建设、网站设计、微信公众号开发、网站优化、网站认证、梧州ssl等。为上千企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的梧州网站制作公司
代码:
if (!get_magic_quotes_gpc()){
$str=addslashes($str);
}
处理过的$str就可以安全入库了。再不会出现插入时导致sql语句错误。
使用html字中弊吵符串的装换处理方法,htmlspecialchars() ,详见PHP手册。取出来显示的时候,使用方卜行法html_entity_decode(),还原html标签,详细看PHP手册关于PHP和HTML的卖侍。
需要转义一下。有几个办法:正轿
1,最简单,把一些危险字符过滤掉,比如英文的单引号,双引号等;
2,使用addslashes在php中进行转义,自己处理;
3,可以使用一些现举氏肆成的处理方法,比如uchome自带的getstr。这样的好处就是对核亮各种可能出现的情况处理比较好。
单引号,单引号中的内容会被直接当成一个字符串,单引号中无法输出变量值;
$a = 'abcd';
echo '$a'; // 输出结果就是 $a,而不是 abcd
双引号,双引号中可以输出简单变量,不能输出复杂变量,否则会报错;
$a = 'abcd';
$b = array('aaa' = 'abcd');
echo "$a"; // 输出 abcd,因为双引号中可以解析简单变量
echo "$b['aaa']"; // 直接报错,因为双引号中不能解析复杂变量
花括号,花括号中既可以输出简单变量,也可以输出复杂变量,如数组、对象等;
$a = 'abcd';
$b = array('aaa' = 'abcd', 'bbb' = array(12,34));
echo "{$a}"; // 输出 abcd
echo "{$b['aaa']}"; // 输出 abcd
echo "{$b['bbb'][1]}"; // 输出 34
所以写的时候想偷懒就用花括号拍段,冲滑不会出错;
但是在性能上,单引号的性能最好,因为单引号中的内袭判誉容会直接被当成字符串,没其他的解析;而解析双引号的时候,会先判断双引号内有没有变量,有变量就把变量用变量值代替,最后再输出双引号内整个的内容;花括号就更不用说了,可以输出复杂的变量内容。
所以一般如果项目没有性能要求的话或者小项目的话,随便怎么用没关系;但是大网站或者要求性能的网站就得视情况挑着用了