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分页显示制作详细讲解
Dec 05 PHP
深入php中var_dump方法的使用详解
Jun 24 PHP
PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
Apr 08 PHP
php实现信用卡校验位算法THE LUHN MOD-10示例
May 07 PHP
PHP文件缓存类示例分享
Jan 30 PHP
Yii2创建多界面主题(Theme)的方法
Oct 08 PHP
基于PHP实现用户注册登录功能
Oct 14 PHP
php+Memcached实现简单留言板功能示例
Feb 15 PHP
利用PHPStorm如何开发Laravel应用详解
Aug 30 PHP
PHP简单实现解析xml为数组的方法
May 02 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
Jun 16 PHP
PHP如何将图片文件上传到另外一台服务器上
Aug 26 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 多维数组排序实现代码
2009/08/05 PHP
ThinkPHP实现事务回滚示例代码
2014/06/23 PHP
PHP向socket服务器收发数据的方法
2015/01/24 PHP
centos下file_put_contents()无法写入文件的原因及解决方法
2017/04/01 PHP
JavaScript获得选中文本内容的方法
2008/12/02 Javascript
自写的一个jQuery圆角插件
2010/10/26 Javascript
浅析jQuery EasyUI中的tree使用指南
2014/12/18 Javascript
EasyUI实现第二层弹出框的方法
2015/03/01 Javascript
JavaScript将字符串转换成字符编码列表的方法
2015/03/19 Javascript
每天一篇javascript学习小结(Boolean对象)
2015/11/12 Javascript
CSS中position属性之fixed实现div居中
2015/12/14 Javascript
基于JavaScript代码实现兼容各浏览器的设为首页和加入收藏
2016/01/07 Javascript
Node.js的Express框架使用上手指南
2016/03/12 Javascript
在Html中使用Requirejs进行模块化开发实例详解
2016/04/15 Javascript
arcgis for js栅格图层叠加(Raster Layer)问题
2017/11/22 Javascript
如何从零开始利用js手写一个Promise库详解
2018/04/19 Javascript
vue裁切预览组件功能的实现步骤
2018/05/04 Javascript
Koa2微信公众号开发之消息管理
2018/05/16 Javascript
微信小程序实现选项卡效果
2018/11/06 Javascript
微信小程序实现手势滑动效果
2019/08/26 Javascript
Cordova(ionic)项目实现双击返回键退出应用
2019/09/17 Javascript
Vue3.x源码调试的实现方法
2019/10/13 Javascript
Python去除字符串两端空格的方法
2015/05/21 Python
详解Python3中的迭代器和生成器及其区别
2018/10/09 Python
Python 等分切分数据及规则命名的实例代码
2019/08/16 Python
python 定义类时,实现内部方法的互相调用
2019/12/25 Python
Python基础进阶之海量表情包多线程爬虫功能的实现
2020/12/17 Python
关于html字符串正则判断和匹配的具体使用
2019/12/12 HTML / CSS
大学生毕业自我鉴定范文
2013/09/19 职场文书
医学生自我评价
2014/01/27 职场文书
会计专业自我鉴定
2014/02/10 职场文书
《蜗牛的奖杯》教后反思
2014/04/24 职场文书
统计工作个人总结
2015/03/03 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
2016年离婚协议书范文
2016/03/18 职场文书
浅谈Python数学建模之线性规划
2021/06/23 Python