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中使用sockets:从新闻组中获取文章
Oct 09 PHP
PHP模拟SQL Server的两个日期处理函数
Oct 09 PHP
用PHP和ACCESS写聊天室(九)
Oct 09 PHP
一个捕获函数输出的函数
Feb 14 PHP
一家之言的经验之谈php+mysql扎实个人基本功
Mar 27 PHP
将时间以距今多久的形式表示,PHP,js双版本
Sep 25 PHP
PHP 使用pcntl和libevent 实现Timer功能
Oct 27 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
Jun 25 PHP
php生成固定长度纯数字编码的方法
Jul 09 PHP
php判断是否为ajax请求的方法
Nov 29 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
Mar 09 PHP
thinkphp5 redis缓存新增方法实例讲解
Mar 24 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中rename函数用法分析
2014/11/15 PHP
浅析php如何实现App常用的秒发功能
2016/08/03 PHP
一个实用的php验证码类
2017/07/06 PHP
PHP receiveMail实现收邮件功能
2018/04/25 PHP
PHP创建对象的六种方式实例总结
2019/06/27 PHP
jquery中对表单的基本操作代码
2010/07/29 Javascript
jquery.validate分组验证代码
2011/03/17 Javascript
事件绑定之小测试  onclick && addEventListener
2011/07/31 Javascript
一个JS函数搞定网页标题(title)闪动效果
2014/05/13 Javascript
JS常用字符串处理方法应用总结
2014/05/22 Javascript
JS判断变量是否为空判断是否null
2014/07/25 Javascript
JavaScript onkeydown事件入门实例(键盘某个按键被按下)
2014/10/17 Javascript
js脚本分页代码分享(7种样式)
2015/08/19 Javascript
AngularJS ng-bind-template 指令详解
2016/07/30 Javascript
xmlplus组件设计系列之树(Tree)(9)
2017/05/02 Javascript
详解Angular Reactive Form 表单验证
2017/07/06 Javascript
react 中父组件与子组件双向绑定问题
2019/05/20 Javascript
node express使用HTML模板的方法示例
2019/08/22 Javascript
VUE解决 v-html不能触发点击事件的问题
2019/10/28 Javascript
基于Electron实现桌面应用开发代码实例
2020/07/07 Javascript
[36:05]完美世界DOTA2联赛循环赛 Forest vs DM 第一场 11.06
2020/11/06 DOTA
numpy找出array中的最大值,最小值实例
2018/04/03 Python
python实现各种插值法(数值分析)
2019/07/30 Python
python使用pip安装模块出现ReadTimeoutError: HTTPSConnectionPool的解决方法
2019/10/04 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
2019/10/17 Python
如何一键升级Python所有包
2020/11/05 Python
打印机墨盒:123Inkjets
2017/02/16 全球购物
美国全球旅游运营商:Pacific Holidays
2018/06/18 全球购物
在线实验室测试:HealthLabs.com
2020/05/03 全球购物
季度思想汇报
2014/01/01 职场文书
网站美工岗位职责
2014/04/02 职场文书
公司委托书范本
2014/04/04 职场文书
2014国庆节幼儿园亲子活动方案
2014/09/16 职场文书
新郎新娘答谢词
2015/01/04 职场文书
婚庆开业庆典主持词
2015/06/30 职场文书
《草船借箭》教学反思
2016/02/23 职场文书