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 xml文件操作代码(一)
Mar 20 PHP
PHP 中关于ord($str)>0x80的详细说明
Sep 23 PHP
一些php项目中比较通用的php自建函数的详解
Jun 06 PHP
解析PHP中的正则表达式以及模式匹配
Jun 19 PHP
使用PHP curl模拟浏览器抓取网站信息
Oct 28 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
Jun 23 PHP
CentOS6.5 编译安装lnmp环境
Dec 21 PHP
php中Socket创建与监听实现方法
Jan 05 PHP
thinkPHP实现多字段模糊匹配查询的方法
Dec 01 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
Mar 31 PHP
PHP+Oracle本地开发环境搭建方法详解
Apr 01 PHP
Yii实现微信公众号场景二维码的方法实例
Aug 30 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中cookie和session的区别实例分析
2014/08/28 PHP
php比较相似字符串的方法
2015/06/05 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
让textarea控件的滚动条怎是位与最下方
2007/04/20 Javascript
谈谈关于JavaScript 中的 MVC 模式
2013/04/11 Javascript
js中的异常处理try...catch使用介绍
2013/09/21 Javascript
js与jquery获取父级元素,子级元素,兄弟元素的实现方法
2014/01/09 Javascript
javascript中expression的用法整理
2014/05/13 Javascript
Javascript学习笔记之数组的遍历和 length 属性
2014/11/23 Javascript
JS+CSS实现感应鼠标渐变显示DIV层的方法
2015/02/20 Javascript
jQuery使用slideUp方法实现控制元素缓慢收起
2015/03/27 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
2016/05/24 Javascript
AngularJs html compiler详解及示例代码
2016/09/01 Javascript
半个小时学json(json传递示例)
2016/12/25 Javascript
AngularJS的ng-repeat指令与scope继承关系实例详解
2017/01/21 Javascript
Vue 实现展开折叠效果的示例代码
2018/08/27 Javascript
Vue中axios的封装(报错、鉴权、跳转、拦截、提示)
2019/08/20 Javascript
JS造成内存泄漏的几种情况实例分析
2020/03/02 Javascript
JavaScript 函数用法详解【函数定义、参数、绑定、作用域、闭包等】
2020/05/12 Javascript
jQuery+ThinkPHP实现图片上传
2020/07/23 jQuery
Python随手笔记之标准类型内建函数
2015/12/02 Python
Python 16进制与中文相互转换的实现方法
2018/07/09 Python
python实现合并两个排序的链表
2019/03/03 Python
python使用多线程编写tcp客户端程序
2019/09/02 Python
美国专营婴幼儿用品的购物网站:buybuy BABY
2017/01/01 全球购物
英国领先的隐形眼镜在线供应商:Lenstore.co.uk
2019/11/24 全球购物
高中生自我评价个人范文
2013/11/09 职场文书
公司委托书格式范文
2014/04/04 职场文书
合伙协议书
2014/04/23 职场文书
努力学习演讲稿
2014/05/10 职场文书
2014年环境整治工作总结
2014/12/10 职场文书
保研导师推荐信
2015/03/25 职场文书
2015年实习生工作总结报告
2015/04/28 职场文书
英语读书笔记
2015/07/02 职场文书
80后创业总结的9条职场用人思想,记得收藏
2019/08/13 职场文书
Nginx已编译的nginx-添加新模块
2021/04/01 Servers