PHP 格式化字符串函数:addslashes()和stripslashes()
2017-10-23 23:52
501 查看
PHP 格式化字符串以便存储:addslashes()和stripslashes()函数
除了使用字符串函数来重新格式化一个可见的字符串之外,也可以使用其中的一些函数来重新格式化字符串,以便将其存入数据库。对于字符串来说,某些字符肯定是有效的,但是当将数据插入到数据库中的时候可能会引起一些问题,因为数据库会将这些字符解释成控制符。这些有问题的字符就是引号(单引和双引)、反斜杠(\)和NULL字符。我们需要找到一种标记或是转义它们的办法,以便使像MySQL这样的数据库能够理解我们表示的是有实际意义的特殊文本字符,而不是控制序列。为了将这些字符进行转义处理,可以在它们前面加一个反斜杠。例如,”(双引号)就变成\”(反斜杠双引号),\(反斜杠)就变成\(反斜杠反斜杠)。(这个规则对所有特殊字符都通用,所以,如果在字符串中存在\字符,就需要用\\进行替换。)
PHP提供了两个专门用于转义字符串的函数。在将任何字符串写到数据库之前,如果你的PHP的默认配置还没有启用该功能,你应该使用addslashes()将它们重新格式化,例如:
$feedback=addslashes(trim($_POST['feedback']));
和许多其他字符串函数一样,addslashes()函数需要一个字符串作为输入参数,经过该函数处理,将返回一个重新格式化后的字符串。
例子:
<?php $str = "He told me:'Hello world! but I don't have any money!'"; echo $str."<br>"; $str_addslashes = addslashes($str); //输出经过addslashes()处理的字符串 echo $str_addslashes."<br>"; $str_stripslashes = stripslashes($str_addslashes); //输出经过stripslashes()处理的字符串 echo $str_stripslashes; ?>
输出:
//未处理的字符串 He told me:'Hello world! but I don't have any money!' //输出经过addslashes()处理的字符串 He told me:\'Hello world! but I don\'t have any money!\' //输出经过stripslashes()处理的字符串 He told me:'Hello world! but I don't have any money!'
调用addslashes()后,所有引号将被加上反斜杠,而Stripslashes()会移除这些反斜杠
这个功能是由magic_quotes_gpc配置指令控制的。如今,在PHP新版本的默认安装情况下,该指令是关闭的。gpc表示GET、POST和cookie,是第一个字母的组合。这就意味着,来自这些方法或方式的变量将被自动包括在引号内。使用get_magic_quotes_gpc()函数,可以检查系统上的这个指令是否已经启用,如果来自这些方法的变量被自动引用在引号中,该函数将返回true。如果系统上该指令为启用的,在显示用户数据之前,必须调用stripslashes()函数;否则,这些反斜杠会被显示出来。
注:
当magic_quotes_gpc=On的时候,函数get_magic_quotes_gpc()就会返回1当magic_quotes_gpc=Off的时候,函数get_magic_quotes_gpc()就会返回0
相关文章推荐
- PHP 字符串存储(转义) addslashes 与 stripslashes 函数
- php---------字符串转义函数(addslashes,stripslashes)
- php字符串格式化函数addslashes()
- php---------字符串转义函数(addslashes,stripslashes)
- php---------字符串转义函数(addslashes,stripslashes)
- PHP中addslashes()和stripslashes()函数的用法
- PHP关于反斜杠处理函数addslashes()和stripslashes()的用法
- php中常用的字符串格式化函数
- php中常见的字符串格式化函数
- PHP格式化字符串函数 sprintf()
- 使用PHP相关函数对字符串格式化的方法
- PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例
- php-addslashes、stripslashes、魔术引号(字符串转义)
- PHP中常用的字符串格式化函数总结
- PHP中常用的字符串格式化函数总结
- php json 初始化函数(格式化json字符串为php json_decode 标准的字符串)
- PHP关于反斜杠处理函数addslashes()和stripslashes()的用法
- PHP关于反斜杠处理函数addslashes()和stripslashes()的用法
- php 反斜杠处理函数addslashes()和stripslashes()实例详解
- php中常用的字符串格式化函数