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应用程序来获取Web服务器的状态信息
Oct 09 PHP
php在线生成ico文件的代码
Oct 09 PHP
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
Apr 07 PHP
php自定义函数之递归删除文件及目录
Aug 08 PHP
php 无法加载mysql的module的时候的配置的解决方案引发的思考
Jan 27 PHP
与文件上传有关的php配置参数总结
Jun 14 PHP
php版淘宝网查询商品接口代码示例
Jun 17 PHP
PHP实现恶意DDOS攻击避免带宽占用问题方法
May 27 PHP
PHP MSSQL 分页实例
Apr 13 PHP
php实现计算百度地图坐标之间距离的方法
May 05 PHP
thinkphp框架使用JWTtoken的方法详解
Oct 10 PHP
基于PHP实现发微博动态代码实例
Dec 11 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 开发工具
2006/12/06 PHP
PHP 使用redis简单示例分享
2015/03/05 PHP
Laravel执行migrate命令提示:No such file or directory的解决方法
2016/03/16 PHP
轻松掌握php设计模式之访问者模式
2016/09/23 PHP
PHP用正则匹配form表单中所有元素的类型和属性值实例代码
2017/02/28 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
2018/05/12 PHP
Laravel框架创建路由的方法详解
2019/09/04 PHP
jQuery中的bind绑定事件与文本框改变事件的临时解决方法
2010/08/13 Javascript
js鼠标滑过弹出层的定位IE6bug解决办法
2012/12/26 Javascript
实例说明为什么不要行内使用javascript
2014/04/18 Javascript
使用JavaScript的AngularJS库编写hello world的方法
2015/06/23 Javascript
JavaScript基础篇(6)之函数表达式闭包
2015/12/11 Javascript
3种不同的ContextMenu右键菜单实现代码
2016/11/03 Javascript
js仿京东轮播效果 选项卡套选项卡使用
2017/01/12 Javascript
原生JS实现不断变化的标签
2017/05/22 Javascript
JavaScript使用Ajax上传文件的示例代码
2017/08/10 Javascript
js拖动滑块和点击水波纹效果实例代码
2018/10/16 Javascript
基于js Canvas实现二次贝塞尔曲线
2018/12/25 Javascript
微信小程序实现的自定义分享功能示例
2019/02/12 Javascript
JavaScript实现图片上传并预览并提交ajax
2019/09/30 Javascript
[49:58]完美世界DOTA2联赛PWL S3 Magma vs DLG 第一场 12.18
2020/12/19 DOTA
Python实现一个简单的验证码程序
2017/11/03 Python
python中的文件打开与关闭操作命令介绍
2018/04/26 Python
Python socket模块实现的udp通信功能示例
2019/04/10 Python
python数据类型强制转换实例详解
2020/06/22 Python
django 实现后台从富文本提取纯文本
2020/07/02 Python
Python同时迭代多个序列的方法
2020/07/28 Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
2021/01/06 Python
一道SQL存储过程面试题
2016/10/07 面试题
销售实习自我鉴定
2013/12/07 职场文书
《雨霖铃》听课反思
2014/02/13 职场文书
爱国主义教育演讲稿
2014/08/26 职场文书
合伙购房协议样本
2014/10/06 职场文书
买卖合同协议书范本
2014/10/18 职场文书
学生不参加考试检讨书
2015/02/19 职场文书
解决Python保存文件名太长OSError: [Errno 36] File name too long
2022/05/11 Python