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 相关文章推荐
discuz的php防止sql注入函数
Jan 17 PHP
php中利用post传递字符串重定向的实现代码
Apr 21 PHP
php写的简易聊天室代码
Jun 04 PHP
部署PHP项目应该注意的几点事项分享
Dec 20 PHP
php中error与exception的区别及应用
Jul 28 PHP
php中使用Ajax时出现Error(c00ce56e)的详细解决方案
Nov 03 PHP
PHP模拟QQ登录的方法
Jul 29 PHP
php cli配置文件问题分析
Oct 15 PHP
PHP将URL转换成短网址的算法分享
Sep 13 PHP
PHP实现的redis主从数据库状态检测功能示例
Jul 20 PHP
PHP Redis扩展无法加载的问题解决方法
Aug 22 PHP
在laravel中使用with实现动态添加where条件
Oct 10 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
PHP5.3.1 不再支持ISAPI
2010/01/08 PHP
php生成略缩图代码
2012/07/16 PHP
关于使用key/value数据库redis和TTSERVER的心得体会
2013/06/28 PHP
php利用单例模式实现日志处理类库
2014/02/10 PHP
php ctype函数中文翻译和示例
2014/03/21 PHP
php获取发送给用户的header信息的方法
2015/03/16 PHP
PHP验证信用卡卡号是否正确函数
2015/05/27 PHP
PHP实现中文圆形印章特效
2015/06/19 PHP
PHP以json或xml格式返回请求数据的方法
2018/05/31 PHP
一页面多XMLHttpRequest对象
2007/01/22 Javascript
javascript获取所有同类checkbox选项(实例代码)
2013/11/07 Javascript
js获取时间并实现字符串和时间戳之间的转换
2015/01/05 Javascript
深入解析JavaScript中函数的Currying柯里化
2016/03/19 Javascript
修复jQuery tablesorter无法正确排序的bug(加千分位数字后)
2016/03/30 Javascript
javascript类型系统——undefined和null全面了解
2016/07/13 Javascript
用jQuery.ajaxSetup实现对请求和响应数据的过滤
2016/12/20 Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
2017/03/10 Javascript
微信小程序使用request网络请求操作实例
2017/12/15 Javascript
angular 表单验证器验证的同时限制输入的实现
2019/04/11 Javascript
[00:32]2018DOTA2亚洲邀请赛Mineski出场
2018/04/04 DOTA
Python制作CSDN免积分下载器
2015/03/10 Python
Python实现删除文件但保留指定文件
2015/06/21 Python
Python管理Windows服务小脚本
2018/03/12 Python
python爬取网页内容转换为PDF文件
2020/07/28 Python
在Python中使用defaultdict初始化字典以及应用方法
2018/10/31 Python
Python3爬楼梯算法示例
2019/03/04 Python
python2爬取百度贴吧指定关键字和图片代码实例
2019/08/14 Python
Python字节单位转换实例
2019/12/05 Python
python GUI库图形界面开发之PyQt5多行文本框控件QTextEdit详细使用方法实例
2020/02/28 Python
利用Python实现斐波那契数列的方法实例
2020/07/26 Python
贝嫂喜欢的婴儿品牌,个性化的婴儿礼物:My 1st Years
2017/11/19 全球购物
德国消费电子产品购物网站:Guter Kauf
2020/09/15 全球购物
OnePlus加拿大官网:中国国际化手机品牌
2020/10/13 全球购物
大学校务公开实施方案
2014/03/31 职场文书
幼儿园运动会口号
2014/06/07 职场文书
微信小程序实现拍照和相册选取图片
2021/05/09 Javascript