set_magic_quotes_runtime(0);

可以修改php.ini中 magic_quotes_runtime boolean的设置

当你的数据中有一些
\
"
'
这样的字符要写入到数据库里面,又想不被过滤掉的时候,它就很有用,会在这些字符前加上\

中国\地大物博"哈哈"
中国\\地大物博\"哈哈\"

set_magic_quotes_runtime是用来设置PHP 环境配置的变量 magic_quotes_runtime 值。
0-关闭 1-打开

程序中检测状态用get_magic_quotes_runtime,返回 0 表示关闭本功能;返回 1 表示本功能打开。若 magic_quotes_runtime 打开时,所有外部引入的数据库资料或者文件等等都会自动转为含有反斜线溢出字符的资料。
在php.ini的配置文件中,有个布尔值的设置,就是magic_quotes_runtime,当它打开时,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()函数添加,它的功能就是给数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)。

魔法引用函数magic_quotes_gpc和magic_quotes_runtime的区别和用法PHP 提供两个方便我们引用数据的魔法引用函数magic_quotes_gpc和magic_quotes_runtime,这两个函数如果在php.ini 设置为ON的时候,就会为我们引用的数据碰到 单引号' 和 双引号" 以及 反斜线\ 时自动加上反斜线,帮我们自动转译符号,确保数据操作的正确运行,可是我们在php不同的版本或者不同的服务器配置下,有的 magic_quotes_gpc和magic_quotes_runtime设置为on,有的又是off,所以我们写的程序必须符合on和off两种情况。那么magic_quotes_gpc和magic_quotes_runtime两个函数有什么区别呢?看下面的说明:

magic_quotes_gpc 
作用范围是:WEB客户服务端;
作用时间:请求开始是,例如当脚本运行时。

magic_quotes_runtime
作用范围:从文件中读取的数据或执行exec()的结果或是从SQL查询中得到的;
作用时间:每次当脚本访问运行状态中产生的数据。

所以magic_quotes_gpc的设定值将会影响通过Get/Post/Cookies获得的数据magic_quotes_runtime的设定值将会影响从文件中读取的数据或从数据库查询得到的数据
例子说明:
$data1 = $_POST['aaa'];

$data2 = implode(file('1.txt'));

if(get_magic_quotes_gpc()){
   //把数据$data1直接写入数据库 (自动转译)
}else{
   $data1 = addslashes($data1);
   //把数据$data1写入数据库,用函数(addslashes()转译)
}

if(get_magic_quotes_runtime()){
   //把数据$data2直接写入数据库(自动转译)
//从数据库读出的数据要经过一次stripslashes()之后输出stripslashes()的作用是去掉:\ ,和addslashes()作用相反
}else{
   $data2 = addslashes($data2);
    //把数据$data2写入数据库

//从数据库读出的数据直接输出
}
最关键的区别是就是上面提到的2点:他们针对的处理对象不同
magic_quotes_gpc的设定值将会影响通过Get/Post/Cookies获得的数据magic_quotes_runtime的设定值将会影响从文件中读取的数据或从数据库查询得到的数据
在这里顺便在提几个想关联的函数:

set_magic_quotes_runtime():
设置magic_quotes_runtime值. 0=关闭.1=打开.默认状态是关闭的.可以通过 echo phpinfo(); 查看magic_quotes_runtime
get_magic_quotes_gpc():
查看magic_quotes_gpc值.0=关闭.1=打开

get_magic_quotes_runtime():
查看magic_quotes_runtime值。0=关闭.1=打开.
注意的是没有 set_magic_quotes_gpc()这个函数,就是不能在程序里面设置magic_quotes_gpc的值。

set_magic_quotes_runtime set_magic_quotes_gpc的更多相关文章

  1. (转)PHP函数set_magic_quotes_runtime()的作用

    新手经常遇到的问题是特殊字符提交的时候提示数据库错误,今天给大家介绍一个set_magic_quotes_runtime函数,来帮助我们过滤里面的内容 php函数 set_magic_quotes_r ...

  2. set_magic_quotes_runtime

    在php的配置文件中,有个布尔值的设置,就是magic_quotes_runtime,当它打开时,php的大部分函数自动的给从外部引入的(包括数据库或者文件)数据中的溢出字符加上反斜线. 当然如果重复 ...

  3. php中的set_magic_quotes_runtime()作用和用法

    set_magic_quotes_runtime 用来设置php.ini文件中的magic_quotes_runtime值,当遇到反斜杆(\).单引号(').双引号(")这样一些的字符定入到 ...

  4. php set_magic_quotes_runtime() 函数过时解决方法

    PHP5.3中 bool set_magic_quotes_runtime ( bool $new_setting )函数过时.把函数: set_magic_quotes_runtime($newse ...

  5. magic_quotes_gpc 、 magic_quotes_runtime 、 magic_quotes_sybase 介绍

    一.三个配置项的作用与区别 magic_quotes_gpc 作用:对php服务器端接收的 GET POST COOKIE 的值执行 addslashes() 操作.作用范围是:WEB客户服务端.作用 ...

  6. PHP 转义详解

    php中数据的魔法引用函数 magic_quotes_gpc  或 magic_quotes_runtime 设置为on时,为我们引用的数据碰到 单引号' 和 双引号" 以及 反斜线\ 时自 ...

  7. PHP中 magic_quotes_gpc 和 magic_quotes_runtime 区别及其反斜线转义问题

    php中关于反斜线转义: php中数据的魔法引用函数 magic_quotes_gpc  或 magic_quotes_runtime     设置为on时,当数据遇到 单引号' 和 双引号" ...

  8. magic_quotes_runtime(魔术引号开关)

    我们可以通过以下代码来探测php环境中magic_quotes_runtime是否开启: magic_runtime.php 源代码如下: <?php //当magic_quotes_runti ...

  9. PHP中magic_quotes_gpc和 magic_quotes_runtime区别及其反斜线转义问题

    php中关于反斜线转义: php中数据的魔法引用函数 magic_quotes_gpc  或 magic_quotes_runtime      设置为on时,当数据遇到 单引号' 和 双引号&quo ...

随机推荐

  1. c#dev tabcontrol 切换页面时注意的问题

    先加一个代码 public void SetXtraTabPageVisible(DevExpress.XtraTab.XtraTabControl xtraTabControl, bool iIsV ...

  2. mysql学习笔记-1.下载与安装

    1.到mysql官网下载操作系统对应的数据库,下载地址https://dev.mysql.com/downloads/mysql/ 2.有msi安装版本和zip压缩版本,2种安装方式不同, 3.安装后 ...

  3. Java VisualVM 插件地址

    打开Java VisualVM检查更新插件时,默认的连接连不上,通过浏览器访问之后发现默认的服务器已经404,新地址已经迁移到github,下面这个地址里面有不同版本jdk对应的插件中心地址. htt ...

  4. Fastdfs 上传图片

    一.fastdfs-client的jar包导入 1.下载地址:https://github.com/happyfish100/fastdfs-client-java 2.将代码使用git下载下来之后, ...

  5. Intellij IDEA 快捷键整理-鬼畜版(全键盘开发指南)

    一 .何为鬼畜? 鬼畜一词在ACG爱好者中也代指通过影片(或音讯)剪辑,用频率极高的重复画面(或声音)组合而成的一段节奏配合音画同步率极高的一类影片,而这类鬼畜影片多见于NICONICO.AcFun和 ...

  6. Vue 不同环境配置相应的 API 地址

    我使用的是 Vue + ElementUI 进行构建的项目,在开发过程中,使用的是前后端分离的模式,所以经常会出现多环境配置信息,尤其是 Api 接口地址的配置,如果在代码中使用判断的方式,感觉不友好 ...

  7. ApplicationContext(七)Message 源

    ApplicationContext(七)Message 源 本节则是初始化消息资源池,对国际化的支持.暂时先略过. 每天用心记录一点点.内容也许不重要,但习惯很重要!

  8. Longest Turbulent Subarray LT978

    A subarray A[i], A[i+1], ..., A[j] of A is said to be turbulent if and only if: For i <= k < j ...

  9. SQL查找指定行的记录

    select top 1 * from (select top 4 * from T_GasStationPrice order by EnableTime) a order by EnableTim ...

  10. python输出格式对齐问题

    采用.format打印输出时,可以定义输出字符串的输出宽度,在 ':' 后传入一个整数, 可以保证该域至少有这么多的宽度. 用于美化表格时很有用. >>> table = {'Goo ...