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极大的增强功能和性能
Oct 09 PHP
php通过文件头检测文件类型通用代码类(zip,rar等)
Oct 19 PHP
wamp安装后自定义配置的方法
Aug 23 PHP
php格式化金额函数分享
Feb 02 PHP
Laravel 5框架学习之环境与配置
Apr 08 PHP
用php代码限制国内IP访问我们网站
Sep 26 PHP
PHP面向对象程序设计类的定义与用法简单示例
Dec 27 PHP
PHP输出多个元素的排列或组合的方法
Mar 14 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
May 02 PHP
PHP有序表查找之二分查找(折半查找)算法示例
Feb 09 PHP
laravel5.1框架model类查询的实现方法
Oct 08 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
May 29 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
ThinkPHP 防止表单重复提交的方法
2011/08/08 PHP
深入php处理整数函数的详解
2013/06/09 PHP
php实现在服务器端调整图片大小的方法
2015/06/16 PHP
给PHP开发者的编程指南 第一部分降低复杂程度
2016/01/18 PHP
PHP执行linux命令常用函数汇总
2016/02/02 PHP
PHP 极验验证码实例讲解
2016/09/29 PHP
使用JavaScript switch case 另类写法
2010/03/14 Javascript
input按钮的事件处理大全
2010/12/10 Javascript
通过Jquery遍历Json的两种数据结构的实现代码
2011/01/19 Javascript
JS的replace方法介绍
2012/10/20 Javascript
向当前style sheet中插入一个新的style实现方法
2013/04/01 Javascript
javascript制作loading动画效果 loading效果
2014/01/14 Javascript
使用GruntJS构建Web程序之合并压缩篇
2014/06/06 Javascript
JavaScript数组的定义及数字操作技巧
2016/06/06 Javascript
JS之获取样式的简单实现方法(推荐)
2016/09/13 Javascript
jQuery实现的文字逐行向上间歇滚动效果示例
2017/09/06 jQuery
React Native使用Modal自定义分享界面的示例代码
2017/10/31 Javascript
JS实现的合并两个有序链表算法示例
2019/02/25 Javascript
在Python中处理字符串之isdecimal()方法的使用
2015/05/20 Python
Python基于dom操作xml数据的方法示例
2018/05/12 Python
利用Python如何批量修改数据库执行Sql文件
2018/07/29 Python
解决python打不开文件(文件不存在)的问题
2019/02/18 Python
django 环境变量配置过程详解
2019/08/06 Python
python实现银行管理系统
2019/10/25 Python
python可以用哪些数据库
2020/06/22 Python
HTML5应用之文件上传
2016/12/30 HTML / CSS
英国标准协会商店:BSI Shop
2019/02/25 全球购物
公务员总结性个人自我评价
2013/12/05 职场文书
儿童生日会策划方案
2014/05/15 职场文书
工作所在部门证明
2014/09/21 职场文书
公司租房协议书范本
2014/10/08 职场文书
计算机专业自荐信范文
2015/03/26 职场文书
防卫过当辩护词
2015/05/21 职场文书
行政诉讼答辩状
2015/05/21 职场文书
海上钢琴师观后感
2015/06/03 职场文书
新员工入职感言范文!
2019/07/04 职场文书