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中使用Oracle数据库(4)
Oct 09 PHP
在PHP中养成7个面向对象的好习惯
Jul 17 PHP
php中使用Curl、socket、file_get_contents三种方法POST提交数据
Aug 12 PHP
利用PHP生成静态HTML文档的原理
Oct 29 PHP
yii框架builder、update、delete使用方法
Apr 30 PHP
帝国cms常用标签汇总
Jul 06 PHP
使用PHP如何实现高效安全的ftp服务器(一)
Dec 20 PHP
Yii使用smsto短信接口的函数demo示例
Jul 13 PHP
thinkPHP的表达式查询用法详解
Sep 14 PHP
redis查看连接数及php模拟并发创建redis连接的方法
Dec 15 PHP
PHP封装返回Ajax字符串和JSON数组的方法
Feb 17 PHP
PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析
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
PHP4和PHP5共存于一系统
2006/11/17 PHP
php实现批量删除挂马文件及批量替换页面内容完整实例
2016/07/08 PHP
PHP入门教程之图像处理技巧分析
2016/09/11 PHP
Yii2 如何在modules中添加验证码的方法
2017/06/19 PHP
jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
2010/10/15 Javascript
ExtJS中文乱码之GBK格式编码解决方案及代码
2013/01/20 Javascript
HTML Color Picker(js拾色器效果)
2013/08/27 Javascript
关于页面嵌入swf覆盖div层的问题的解决方法
2014/02/11 Javascript
js生成动态表格并为每个单元格添加单击事件的方法
2014/04/14 Javascript
JavaScript参数个数可变的函数举例说明
2014/10/10 Javascript
使用JavaScript+canvas实现图片裁剪
2015/01/30 Javascript
C++中的string类的用法小结
2015/08/07 Javascript
jQuery.extend 函数及用法详细
2015/09/06 Javascript
js读取并解析JSON类型数据的方法
2015/11/14 Javascript
Nodejs进阶:基于express+multer的文件上传实例
2016/11/21 NodeJs
vue实现表格增删改查效果的实例代码
2017/07/18 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
2017/09/21 Javascript
Vue表单控件绑定图文详解
2019/02/11 Javascript
jQuery模仿ToDoList实现简单的待办事项列表
2019/12/30 jQuery
js与jquery获取input输入框中的值实例讲解
2020/02/27 jQuery
[00:35]DOTA2上海特级锦标赛 VP战队宣传片
2016/03/04 DOTA
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
2016/09/18 Python
查看python安装路径及pip安装的包列表及路径
2019/04/03 Python
python之拟合的实现
2019/07/19 Python
Django中的AutoField字段使用
2020/05/18 Python
python re模块常见用法例举
2021/03/01 Python
HTML5 form标签之解放表单验证、增加文件上传、集成拖放的使用方法
2013/04/24 HTML / CSS
html5 http的轮询和Websocket原理
2018/10/19 HTML / CSS
美国最佳选择产品网站:Best Choice Products
2019/05/27 全球购物
波兰在线体育用品商店:Hop-Sport.pl
2019/07/23 全球购物
英国老牌潮鞋店:Offspring
2019/08/19 全球购物
英国DVD和蓝光碟片购买网站:Zoom.co.uk(电影和电视)
2019/09/23 全球购物
北京鼎普科技股份有限公司软件测试面试题
2012/04/07 面试题
护士自我鉴定怎么写
2014/02/07 职场文书
三八节主持词
2014/03/17 职场文书
水浒传读书笔记
2015/06/25 职场文书