stripslashes()函数的作用_strip和strap的区别

stripslashes()函数的作用_strip和strap的区别我们在向mysql写入数据时,比如:

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

我们在向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()。

PHP在默认配置情况下是会自动转移 post 过来的数据的,要先stripslashes()之后再存入数据库,也就是说默认:magic_quotes_gpc = On

最后举例:

 

代码

//这是为了防止没有转义的情况下数据库出现插入错误,插入数据到数据库,代码省略

//获取内容,如果服务器没有设置自动转义(特殊字符加上/),就将数据中的特殊符号进行转义(防止数据库中存储出现错误)
 if(!get_magic_quotes_gpc()){

  $onedsContent=addslashes($onedsContent);//这里面是数据,不管有没单引号或者还是变量
 }

————————————————————————————————————————

//查询出来的内容由于在出入数据库中的时候转义了,这里再转义回来
   $onedsContent=stripslashes($onedsContent);

查看文档:http://baike.baidu.com/link?url=-_IZ2lBVP3EpK215R7PeWNuBh9xeVmeuqBrtK_Q6dXZM1gwXhgTH4aZnuKURzj4e4lWCHVqCxx4WKGSI2i2jxq

扎客小站:www.ezhake.com

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178796.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • HDU-3363 Count the string KMP 巧用next函数

    HDU-3363 Count the string KMP 巧用next函数

    2021年8月12日
    39
  • hive like与rlike的区别

    hive like与rlike的区别like与rlike的区别:like不是正则,而是通配符。这个通配符可以看一下SQL的标准,例如%代表任意多个字符。rlike是正则,正则的写法与java一样。’\’需要使用’\\’,例如’\w’需要使用’\\w’hive>select”aaaaa”like”%aaa%”fromtest_structlimit10;Totaljobs=1…OK

    2022年7月26日
    2
  • unity3d简单游戏教程_3D推荐

    unity3d简单游戏教程_3D推荐经过前面《Unity3D入门教程》系列讲解,再加上我们自己的探索,相信大家已经掌握了Unity3D的相关知识和基本方法。本文将使用前面学到的知识,开发一款简单的五子棋程序。本文用到的东西其实不多,非常简单。在最后我们会把完整工程的源代码发布出来,以供初学者参考。

    2022年8月10日
    5
  • gdb调试命令的使用及总结_大锅安装调试指南

    gdb调试命令的使用及总结_大锅安装调试指南写这篇文档的目的是对前面GDB的知识做一次总览,本文为GDB调试指南,参考GDB调试手册,目前已有的篇目:启动调试断点设置查看源码单步调试查看变量前言GDB是Linux下非常好用且强大的调试工具。GDB可以调试C、C++、Go、java、objective-c、PHP等语言。对于一名Linux下工作的c/c++程序员,GDB是必不可少的工具,本篇以C语言来调试。GDB简介U…

    2022年10月24日
    1
  • java mina框架实例_MINA框架简介和一个简单的例子

    基于MINA框架快速开发网络应用程序1.MINA框架简介MINA(MultipurposeInfrastructureforNetworkApplications)是用于开发高性能和高可用性的网络应用程序的基础框架。通过使用MINA框架可以可以省下处理底层I/O和线程并发等复杂工作,开发人员能够把更多的精力投入到业务设计和开发当中。MINA框架的应用比较广泛,应用的开源项目有Apache…

    2022年4月9日
    50
  • ntp时间同步协议_ntp服务器搭建

    ntp时间同步协议_ntp服务器搭建一、简介1.作用NTP是从时间协议(TimeProtocol)和ICMP时间戳报文(ICMPTimeStampMessage)演变而来,在准确性和健壮性方面进行了特殊的设计,理论上精度可达十亿分之一秒。NTP协议应用于分布式时间服务器和客户端之间,实现客户端和服务器的时间同步,从而使网络内所有设备的时钟基本保持一致。NTP协议是基于UDP进行传输的,使用端口号为123。2.特征NTP提供了准…

    2022年10月11日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号