您好,欢迎访问一九零五行业门户网

php stripslashes和addslashes的区别介绍_PHP教程

这篇文章主要介绍了php stripslashes和addslashes的区别,特分享下方便需要的朋友。
我们在向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; 
http://www.bkjia.com/phpjc/730219.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/730219.htmltecharticle这篇文章主要介绍了php stripslashes和addslashes的区别,特分享下方便需要的朋友。 我们在向mysql写入数据时,比如:代码如下:mysql_query(update...
其它类似信息

推荐信息