php stripslashes和addslashes的区别

 我来答
开心面对每一天happy
2015-08-10
知道答主
回答量:7
采纳率:0%
帮助的人:2.7万
展开全部
我们在向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()。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式