magic_quotes_runtime的作用

本文深入解析了PHP中magic_quotes_runtime的作用及其对自动转义的影响,包括如何通过get_magic_quotes_runtime和set_magic_quotes_runtime函数来检测和控制这一特性。同时介绍了magic_quotes_gpc设置和addslashes函数在处理GPC数据时的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

magic_quotes_runtime作用

<<font face="宋体">自动为外部引入的数据加上反斜线>

当它打开时,php的大部分函数自动的给从外部引入的(包括数据库或者文件)数据中的溢出字符加上反斜线。当然如果重复给溢出字符加反斜线,那么字符串中就会有多个反斜线,所以这时就要用set_magic_quotes_runtime()get_magic_quotes_runtime()设置和检测php.ini文件中magic_quotes_runtime状态

 

为了使自己的程序不管服务器是什么设置都能正常执行。

可以在程序开始用get_magic_quotes_runtime检测该设置的状态决定是否要手工处理,

或者在开始(或不需要自动转义的时候)用set_magic_quotes_runtime(0)关掉该设置。magic_quotes_gpc设置是否自动为GPC(get,post,cookie)传来的数据中的\'\"\\加上反斜线。

 

可以用get_magic_quotes_gpc()检测系统设置。如果没有打开这项设置,可以使用addslashes()函数添加,它的功能就是给数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(\')、双引号(\")、反斜线(\\)与NULNULL 字符)。

 

一般用法如下;

if(!get_magic_quotes_gpc())

{

   addslashes($prot);

}

 

 

 

PHPset_magic_quotes_runtime()函数的作用:

<<font face="宋体">设置magic_quotes_runtime的状态>

此函数用来修改PHP.ini文件中的 magic_quotes_runtime 变量的状态。如果想获得magic_quotes_runtime 变量的状态用get_magic_quotes_runtime()这个函数,如果返回0表示本功能被关闭,如果返回1表示本功能已经开启。

 

      magic_quotes_runtime变量的功能是当它被开启的时候所有外部引入的数据库资料或者文件等等都会自动转为含有反斜线溢出字符的资料(给特殊字符加反斜杠转意)。比如: 用户向数据库提交的数据中含有\" '这些符号的时候它就会在这些符号的前面自动加上"\"转义符。

这个属性在PHP4以前的版本都是默认关闭的,PHP4.0以后默认都是开启的,PHP4.0以后的版本如果程序要用到将它关闭的时候直接写成set_magic_quotes_runtime(0)将其关闭

设置方法如下:

 

1、可以直接在php.ini里面设置为ON

 

2set_magic_quotes_runtime(true)或者set_magic_quotes_runtime(1)

 

3、用ini_set函数,ini_set(magic_quotes_runtime,1);

 

 

get_magic_quotes_gpc函数作用:

<<font face="宋体">判断有没有自动调用addslashes函数转意get post cookie特殊字符>

      此函数取得 PHP 环境配置的变量 magic_quotes_gpc (GPC, Get/Post/Cookie) 值。返回 表示关闭本功能;返回 表示本功能打开。当magic_quotes_gpc 打开时,所有的 (单引号), (双引号), (反斜线and 空字符会自动加上转义符\

 

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

在网络搜索后,以下是关于“magic in IT context”的相关信息整合: --- Magic在IT领域的上下文中通常指代一些自动化、智能化或者隐藏复杂性的技术实现方式。以下是一些常见的解释和应用方向: 1. **魔术方法(Magic Methods)** 在编程语言中,“魔法方法”是指某些特殊命名的方法,它们提供了对象行为的扩展功能。例如,在Python中,`__init__()` 和 `__str__()` 是典型的魔法方法,用于初始化对象或定义字符串表示形式。 2. **Magical Automation Tools (自动化工具)** Magic一词常被用来描述那些能够简化开发人员工作流的技术。比如Ansible中的Playbooks可以通过简单的YAML文件自动完成复杂的服务器配置任务,这种体验被称为“magical”。 3. **Magic Commands for Jupyter Notebooks** 在数据科学领域,Jupyter Notebook支持一系列称为“magic commands”的命令行指令,这些命令以百分号 `%` 开头,用于增强交互式计算环境的功能。例如: ```python %timeit %matplotlib inline ``` 4. **Network Management with Marvis Assistant** Juniper Networks推出的Marvis虚拟网络助手利用了先进的自然语言处理(NLP)来理解用户的意图,并提供有关网络性能分析以及故障排查的帮助。它有时也被形容为一种“魔力”,因为它能迅速找到问题根源。 5. **Cloud Magician Services** 某些云计算服务商提供的解决方案可能也会冠名“Magic Service”。这类服务往往强调无需深入底层架构知识即可轻松部署高可用性系统的能力。 6. **Security Contexts – Magic Cookies & Tokens** 计算机安全方面,“magic cookie”是一种小型的数据片段,主要用于验证会话状态或其他临时信息传递过程中保持一致性;而OAuth tokens则类似于这样的一种机制但更加正式化。 --- ### 示例代码展示 Python 中的魔法方法 ```python class MagicalClass: def __init__(self, value): self.value = value # 定义加法运算符的行为 def __add__(self, other): return MagicalClass(self.value + other.value) # 返回类实例的非正式字符串表示形式 def __str__(self): return f"Value is {self.value}" obj1 = MagicalClass(10) obj2 = MagicalClass(20) result = obj1 + obj2 # 调用了 __add__() 方法 print(result) # 输出由 __str__() 控制的结果 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值