php stripslashes和addslashes的区别

2015-01-24信息快讯网

这篇文章主要介绍了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;

php去掉URL网址中带有PHPSESSID的配置方法
PHP中对各种加密算法、Hash算法的速度测试对比代码
php操作redis中的hash和zset类型数据的方法和代码例子
采用memcache在web集群中实现session的同步会话
PHP关于htmlspecialchars、strip_tags、addslashes的解释
PHP+Memcache实现wordpress访问总数统计(非插件)
ThinkPHP框架实现session跨域问题的解决方法
PHP和javascript常用正则表达式及用法实例
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
PHP错误Cannot use object of type stdClass as array in错误的解决办法
利用谷歌 Translate API制作自己的翻译脚本
PHP is_subclass_of函数的一个BUG和解决方法
PHP中把stdClass Object转array的几个方法
PHP函数addslashes和mysql_real_escape_string的区别
二进制交叉权限微型php类分享
php获取网页标题和内容函数(不包含html标签)
分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
PHP $_FILES中error返回值详解
php使用base64加密解密图片示例分享
php环境下利用session防止页面重复刷新的具体实现
PHP修改session_id示例代码
利用浏览器的Javascript控制台调试PHP程序
php-perl哈希算法实现(times33哈希算法)
PHP数据库链接类(PDO+Access)实例分享
php 模拟 asp.net webFrom 按钮提交事件的思路及代码
PHP反射类ReflectionClass和ReflectionObject的使用方法
PHP利用str_replace防注入的方法
php preg_replace替换实例讲解
php class类的用法详细总结
php调用Google translate_tts api实现代码
php addslashes 利用递归实现使用反斜线引用字符串
解析php addslashes()与addclashes()函数的区别和比较
©2014-2024 dbsqp.com