PHP 格式化字符串函数:addslashes()和stripslashes()

2023-12-27 06:48

本文主要是介绍PHP 格式化字符串函数:addslashes()和stripslashes(),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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()的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/542222

相关文章

Python中help()和dir()函数的使用

《Python中help()和dir()函数的使用》我们经常需要查看某个对象(如模块、类、函数等)的属性和方法,Python提供了两个内置函数help()和dir(),它们可以帮助我们快速了解代... 目录1. 引言2. help() 函数2.1 作用2.2 使用方法2.3 示例(1) 查看内置函数的帮助(

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

Springboot3+将ID转为JSON字符串的详细配置方案

《Springboot3+将ID转为JSON字符串的详细配置方案》:本文主要介绍纯后端实现Long/BigIntegerID转为JSON字符串的详细配置方案,s基于SpringBoot3+和Spr... 目录1. 添加依赖2. 全局 Jackson 配置3. 精准控制(可选)4. OpenAPI (Spri

使用Python实现base64字符串与图片互转的详细步骤

《使用Python实现base64字符串与图片互转的详细步骤》要将一个Base64编码的字符串转换为图片文件并保存下来,可以使用Python的base64模块来实现,这一过程包括解码Base64字符串... 目录1. 图片编码为 Base64 字符串2. Base64 字符串解码为图片文件3. 示例使用注意

Python中bisect_left 函数实现高效插入与有序列表管理

《Python中bisect_left函数实现高效插入与有序列表管理》Python的bisect_left函数通过二分查找高效定位有序列表插入位置,与bisect_right的区别在于处理重复元素时... 目录一、bisect_left 基本介绍1.1 函数定义1.2 核心功能二、bisect_left 与

java中BigDecimal里面的subtract函数介绍及实现方法

《java中BigDecimal里面的subtract函数介绍及实现方法》在Java中实现减法操作需要根据数据类型选择不同方法,主要分为数值型减法和字符串减法两种场景,本文给大家介绍java中BigD... 目录Java中BigDecimal里面的subtract函数的意思?一、数值型减法(高精度计算)1.

C++/类与对象/默认成员函数@构造函数的用法

《C++/类与对象/默认成员函数@构造函数的用法》:本文主要介绍C++/类与对象/默认成员函数@构造函数的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录名词概念默认成员函数构造函数概念函数特征显示构造函数隐式构造函数总结名词概念默认构造函数:不用传参就可以

C++类和对象之默认成员函数的使用解读

《C++类和对象之默认成员函数的使用解读》:本文主要介绍C++类和对象之默认成员函数的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、默认成员函数有哪些二、各默认成员函数详解默认构造函数析构函数拷贝构造函数拷贝赋值运算符三、默认成员函数的注意事项总结一

Python函数返回多个值的多种方法小结

《Python函数返回多个值的多种方法小结》在Python中,函数通常用于封装一段代码,使其可以重复调用,有时,我们希望一个函数能够返回多个值,Python提供了几种不同的方法来实现这一点,需要的朋友... 目录一、使用元组(Tuple):二、使用列表(list)三、使用字典(Dictionary)四、 使

golang float和科学计数法转字符串的实现方式

《golangfloat和科学计数法转字符串的实现方式》:本文主要介绍golangfloat和科学计数法转字符串的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望... 目录golang float和科学计数法转字符串需要对float转字符串做处理总结golang float