Stripslashes和addslashes 区别

 http://blog.163.com/you_mein2009/blog/static/119512560201032113714490/

Stripslashes和addslashes 区别 - 蓝色花絮 - 永远的2009

Stripslashes()

函数删除由addslashes() 函数生成的斜杠。

语法:

stripslashes(string)

string 必需的参数,是规定要检查的字符串。

提示和注释:

该函数用于清理从数据库或html表单中取回的数据。

例一:

<?php

echo stripslashes("Who\'s John Adams?");

?>

本例输出:

Who's John Adams?

 

addslashes()

函数在指定的预定义字符前添加反斜杠。

这些预定义字符是:

单引号(‘)

双引号(“)

反斜杠(\)

NULL

语法:

addslashes(string)

参数:

String必需。规定要检查的字符串。

提示:

该函数 可用于为储存在数据库中的字符串 以及 数据库查询语句准备合适的字符串。

注释:

默认情况下,PHP 指令 magic_quotes_gpc 为 on,意味着插入数据库中会自动转换,对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。

如果get_magic_quotes_gpc为0,则表示未启用,此时POST/GET/COOKIE中的敏感字符就不会自动转义,此时就调用daddslashes

例二:

测试在本例中,我们要向字符串中的预定义添加反斜杠:

<?php

$str = "Who's John Adams?";

echo $str . " This is not safe in a database query.<br />";

echo addslashes($str) . " This is safe in a database query.";

?>

本例输出:

Who's John Adams? This is not safe in a database query.

Who\'s John Adams? This is safe in a database query.

 

向mysql写入数据

当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

//$content 从数据库里读取内容

if(get_magic_quotes_gpc()){ $Content=stripslashes($Content); }

echo $Content;

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值