php stripslashes和addslashes的区别
来源:互联网 发布:sql trunc函数 编辑:程序博客网 时间:2024/04/28 20:57
addslashes():对输入字符串中的某些预定义字符前添加反斜杠,这样处理是为了数据库查询语句等的需要。这些预定义字符是:单引号 (') ,双引号 (") ,反斜杠 (\) ,NULL。stripslashes():删除由 addslashes() 函数添加的反斜杠。该函数用于清理从数据库或 HTML 表单中取回的数据。(若是连续二个反斜杠,则去掉一个,保留一个;若只有一个反斜杠,就直接去掉。)
我们在向mysql写入数据时,比如:
mysql_query("update table set `title`='kuhanzhu's blog'");
那就会出错。同asp时一样,数据库都会对单引号过敏。而addslashes在这个时候就最长面子了,跟asp的replace(”‘”,”””,”kuhanzhu's blog”)功能一样。
PHP为了安全性,所以引入了个magic_quotes_gpc = On的功能,可以不需要做任何处理就能直接把单引号插入数据库中,那么对于Off时,则需要考虑单引号的问题了,而不是一味地信任运行环境。
当magic_quotes_gpc = On时,使用了addslashes()处理后的数据在数据库中将以\'形式保存,如果此时直接输出的话,就会发现比自己期待的内容多了个\,因此stripslashes()出场了,它能把\去掉(区别于str_replace(”\”, “”,$Str))。
当magic_quotes_gpc = Off时,使用了addslashes()处理后的数据在数据库中将以'形式保存,没有上面说的有\的问题,addslashes()起到插入数据不出错的作用,如果此时直接输出的话,数据正常。不需要再用stripslashes()。
addslashes()和stripslashes()正好是相反的,直接记忆:addslashes()加个\,stripslashes()去个\
那么什么时候用呢?
简单说:
当magic_quotes_gpc = On时,系统会自动处理单引号等问题,用不用addslashes()和stripslashes()都没关系,但是如果添加数据时用了addslashes(),那么显示数据时必须要stripslashes()
当magic_quotes_gpc = Off时,系统不会处理单引号等问题,所以插入数据时必须要使用addslashes(),显示数据时则不需要使用stripslashes()。
既然有了分析,做程序时要怎么办呢?根据以上两种情况,可得:
不管magic_quotes_gpc是On还是Off,咱添加数据时都用addslashes(),当On时,必须使用stripslashes(),Off时则不能用stripslashes()。
如何判断On还是Off呢?用get_magic_quotes_gpc()。
最后举例:
代码
//提交数据,或者变量准备:
$Content=addslashes(”这里面是数据,不管有没单引号或者还是变量”);
//插入数据到数据库,代码省略
//开始显示数据
$Content=”从数据库读取的数据”;
if(get_magic_quotes_gpc()){
$Content=stripslashes($Content);
}
echo $Content;
- php中stripslashes和addslashes的区别
- php stripslashes和addslashes的区别
- php stripslashes和addslashes的区别
- stripslashes和addslashes的区别
- stripslashes和addslashes的区别
- stripslashes和addslashes的区别
- Stripslashes和addslashes 区别
- PHP中stripslashes和addslashes的使用
- PHP中stripslashes和addslashes的应用
- PHP中addslashes和stripslashes的应用
- php get_magic_quotes_gpc() stripslashes()和addslashes()的关系
- PHP中addslashes()和stripslashes()函数的用法
- PHP 格式化字符串函数:addslashes()和stripslashes()
- addslashes()、stripslashes()和magic_quotes_gpc
- 关于addslashes()和stripslashes()
- addslashes 和 stripslashes
- PHP中addslashes()和stripslashes()实现字符串转义和还原
- PHP关于反斜杠处理函数addslashes()和stripslashes()的用法
- 树莓派各类显示屏体验
- VLAN原理详解
- 每天一条linux---which命令
- Java内存管理:深入Java内存区域
- ALSA 音频工具 amixer、aplay、arecord
- php stripslashes和addslashes的区别
- 设计模式之单例模式
- json and REST
- Go-命令行参数
- AngularJS-2.依赖注入
- iOS 视图控制器的方法执行顺序
- Android开发-Volley-解析Json使用方法-4-完整Demo-AndroidStudio
- Nao机器人如何实现视频监控
- GC是什么?为什么会有GC?