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 文件上传代码(限制jpg文件)
Jan 05 PHP
php checkbox复选框值的获取与checkbox默认值输出方法
May 15 PHP
PHP下常用正则表达式整理
Oct 26 PHP
php修改时间格式的代码
May 29 PHP
PHP大小写问题:函数名和类名不区分,变量名区分
Jun 17 PHP
慎用preg_replace危险的/e修饰符(一句话后门常用)
Jun 19 PHP
php版小黄鸡simsimi聊天机器人接口分享
Jan 26 PHP
PHP生成短网址的3种方法代码实例
Jul 08 PHP
PHP中读取文件的8种方法和代码实例
Aug 05 PHP
PHP动态编译出现Cannot find autoconf的解决方法
Nov 05 PHP
PHP的openssl加密扩展使用小结(推荐)
Jul 18 PHP
PHP创建单例后台进程的方法示例
May 23 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
CodeIgniter集成smarty的方法详解
2016/05/26 PHP
PHP+Session防止表单重复提交的解决方法
2018/04/09 PHP
JQuery 浮动导航栏实现代码
2009/08/27 Javascript
jQuery powerFloat万能浮动层下拉层插件使用介绍
2010/12/27 Javascript
5秒后跳转效果(setInterval/SetTimeOut)
2013/05/03 Javascript
探讨js中的双感叹号判断
2013/11/11 Javascript
js arguments,jcallee caller用法总结
2013/11/30 Javascript
js表格排序实例分析(支持int,float,date,string四种数据类型)
2015/05/06 Javascript
jQuery实现时尚漂亮的弹出式对话框实例
2015/08/07 Javascript
jQuery实现动态添加和删除一个div
2015/08/12 Javascript
js查看一个函数的执行时间实例代码
2015/09/12 Javascript
jQuery实现两款有动画功能的导航菜单代码
2015/09/16 Javascript
分享经典的JavaScript开发技巧
2015/11/21 Javascript
jQuery选择器用法实例详解
2015/12/17 Javascript
简单谈谈javascript中this的隐式绑定
2016/02/22 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
Javascript单例模式的介绍和实例
2016/10/08 Javascript
angularjs中回车键触发某一事件的方法
2017/04/24 Javascript
jQuery结合jQuery.cookie.js插件实现换肤功能示例
2017/10/14 jQuery
微信小程序返回多级页面的实现方法
2017/10/27 Javascript
使用JS代码实现俄罗斯方块游戏
2018/08/03 Javascript
Vue 理解之白话 getter/setter详解
2019/04/16 Javascript
[01:14:35]DOTA2上海特级锦标赛B组资格赛#1 Alliance VS Fnatic第一局
2016/02/26 DOTA
TensorFlow安装及jupyter notebook配置方法
2017/09/08 Python
Python模拟三级菜单效果
2017/09/11 Python
python GUI实例学习
2017/11/21 Python
解决numpy矩阵相减出现的负值自动转正值的问题
2020/06/03 Python
Win10环境中如何实现python2和python3并存
2020/07/20 Python
HTML5印章绘制电子签章图片(中文英文椭圆章、中文英文椭圆印章)
2019/06/03 HTML / CSS
拥有超过850家商店的美国在线派对商店:Party City
2018/10/21 全球购物
SmartBuyGlasses荷兰:购买太阳镜和眼镜
2020/03/16 全球购物
求职者应聘的自我评价
2013/10/16 职场文书
领导接待方案
2014/03/13 职场文书
初二学习计划书范文
2014/04/27 职场文书
婚礼领导致辞大全
2015/07/28 职场文书
详解redis分布式锁的这些坑
2021/05/19 Redis