PHP daddslashes 使用方法介绍


Posted in PHP onOctober 26, 2012

实例代码:

@set_magic_quotes_runtime(0); 
$MQG = get_magic_quotes_gpc(); if(!$MQG && $_POST) $_POST = daddslashes($_POST); 
if(!$MQG && $_GET) $_GET = daddslashes($_GET); 
//转译字符函数 
function daddslashes($string) { 
if(!is_array($string)) return addslashes($string); 
foreach($string as $key => $val) $string[$key] = daddslashes($val); 
return $string; 
}

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和magic_quotes_runtime函数区别

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

magic_quotes_runtime

作用范围:从文件中读取的数据或是从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=打开.默认状态是关闭的.

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的值。

PHP 相关文章推荐
php程序之die调试法 快速解决错误
Sep 17 PHP
PHP 向右侧拉菜单实现代码,测试使用中
Nov 03 PHP
php中大括号作用介绍
Mar 22 PHP
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
Jul 01 PHP
PHP 关于访问控制的和运算符优先级介绍
Jul 08 PHP
zf框架的校验器使用使用示例(自定义校验器和校验器链)
Mar 13 PHP
PHP中模拟处理HTTP PUT请求的例子
Jul 22 PHP
php实现插入数组但不影响原有顺序的方法
Mar 27 PHP
php生成高清缩略图实例详解
Dec 07 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
Aug 20 PHP
PHP实现SMTP邮件的发送实例
Sep 27 PHP
ThinkPHP3.1.2 使用cli命令行模式运行的方法
Apr 14 PHP
Zend Studio去除编辑器的语法警告设置方法
Oct 24 #PHP
真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )
Oct 24 #PHP
php中检查文件或目录是否存在的代码小结
Oct 22 #PHP
php模拟js函数unescape的函数代码
Oct 20 #PHP
PHP 万年历实现代码
Oct 18 #PHP
php页面缓存ob系列函数介绍
Oct 18 #PHP
php cc攻击代码与防范方法
Oct 18 #PHP
You might like
PHP PDO函数库详解
2010/04/27 PHP
基于PHP实现通过照片获取ip地址
2016/04/26 PHP
PHP实现查询手机归属地的方法详解
2017/04/28 PHP
如何在PHP中生成随机数
2020/06/04 PHP
理解 JavaScript 预解析
2009/10/25 Javascript
Extjs中使用extend(js继承) 的代码
2012/03/15 Javascript
javascript禁止访客复制网页内容的实现代码
2015/08/05 Javascript
jQuery实现点击按钮弹出可关闭层的浮动层插件
2015/09/19 Javascript
AngularJs解决跨域问题案例详解(简单方法)
2016/05/19 Javascript
详解webpack编译多页面vue项目的配置问题
2017/12/11 Javascript
nuxt框架中路由鉴权之Koa和Session的用法
2018/05/09 Javascript
微信小程序自定义底部弹出框
2020/11/16 Javascript
图文讲解用vue-cli脚手架创建vue项目步骤
2019/02/12 Javascript
基于Fixed定位的框选功能的实现代码
2019/05/13 Javascript
vue router动态路由设置参数可选问题
2019/08/21 Javascript
[57:47]Fnatic vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python计算程序运行时间的方法
2014/12/13 Python
详细讲解Python中的文件I/O操作
2015/05/24 Python
python 简单搭建阻塞式单进程,多进程,多线程服务的实例
2017/11/01 Python
python学习入门细节知识点
2018/03/29 Python
一百行python代码将图片转成字符画
2021/02/19 Python
13个Pandas实用技巧,助你提高开发效率
2020/08/19 Python
乌克兰品牌化妆品和香水在线商店:Bomond
2020/01/14 全球购物
大专自我鉴定范文
2013/10/23 职场文书
生产副总岗位职责
2013/11/28 职场文书
施工资料员岗位职责
2014/01/06 职场文书
优秀乡村医生先进事迹材料
2014/08/23 职场文书
劳动者解除劳动合同通知书
2015/04/16 职场文书
2015年房地产销售工作总结
2015/04/20 职场文书
2015年七一建党节活动方案
2015/05/05 职场文书
2015年工商所工作总结
2015/05/21 职场文书
2016年会领导致辞稿
2015/07/29 职场文书
golang 实现时间戳和时间的转化
2021/05/07 Golang
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
2021/06/09 Python
详细了解MVC+proxy
2021/07/09 Java/Android
Vue提供的三种调试方式你知道吗
2022/01/18 Vue.js