加入收藏 | 设为首页 | 会员中心 | 我要投稿 文章分享网_茂名站长网 (https://www.0668zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php stripslashes和addslashes的差异

发布时间:2022-06-15 11:13:50 所属栏目:PHP教程 来源:互联网
导读:这篇文章主要介绍了php stripslashes和addslashes的区别,特分享下方便需要的朋友。 我们在向mysql写入数据时,比如: mysql_query(update table set `title`=kuhanzhus blog); 那就会出错。同asp时一样,数据库都会对单引号过敏。而addslashes在这个时候就
  这篇文章主要介绍了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; 

(编辑:文章分享网_茂名站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读