对于php中几种字符过滤的用法我有点混乱,不知道什么时候该用哪种方法,请教知道的人帮我梳理下:
1、htmlspecialchars 屏蔽用户提交非法字符
2、htmlentities 转化所有html代码
3、addslashes \ mysql_real_escape_string意思明白,就是对什么时候用哪个不太清楚
1、htmlspecialchars 屏蔽用户提交非法字符
2、htmlentities 转化所有html代码
3、addslashes \ mysql_real_escape_string意思明白,就是对什么时候用哪个不太清楚
& -> &
" -> "
' -> '
< -> <
> -> >
防止浏览器把以上的字符当作控制字符处理比如<br>表示换行(页面不显示<br>,只会换行),如果你想在页面显示<br>就要用<br>2、htmlentities和htmlspecialchars用法类似3、addslashes是给字符串加\(即转义字符),比如''在数据库语句中是判断它包含的是否是字符串,如果你想在字符串的内容里包含'',就必须用\'来表示,否则系统会把它当作控制字符处理。
比如字符串'It's a test.'数据库会认为是It 和后面一个不全的语句(因为'没有成对出现)
要数据库正确处理,必须是'It\'s a test.', 这样数据库才认为是It's a test这个字符串。