2018-01-31PHP中 stripslashes() 函数 和 addslashes() 函数

您现在的位置是: 首页 > PHP技术 > PHP中 stripslashes() 函数 和 addslashes() 函数

382次阅读

一、stripslashes()——删除反斜杠

定义和用法

stripslashes() 函数删除由 addslashes() 函数添加的反斜杠。

提示:该函数可用于清理从数据库中或者从 HTML 表单中取回的数据。


<?php

echo stripslashes("Who\'s Bill Gates?");


二、addslashes()——在每个双引号(")前添加反斜杠


定义和用法

addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。


预定义字符是:


   单引号(')
   双引号(")
   反斜杠(\)
   NULL


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

注释:默认地,PHP 对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。所以您不应对已转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。


<?php

$str = addslashes('Shanghai is the "biggest" city in China.');
echo($str);


三、注意点


当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()。