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 相关文章推荐
使用 eAccelerator加速PHP代码的方法
Sep 30 PHP
ubuntu 编译安装php 5.3.3+memcache的方法
Aug 05 PHP
适用于php-5.2 的 php.ini 中文版[金步国翻译]
Apr 17 PHP
PHP多个版本的分析解释
Jul 21 PHP
PHP文件操作实现代码分享
Sep 01 PHP
PHP数组 为文章加关键字连接 文章内容自动加链接
Dec 29 PHP
PHP字符串的编码问题的详细介绍
Apr 27 PHP
yii实现图片上传及缩略图生成的方法
Dec 04 PHP
YII Framework框架教程之缓存用法详解
Mar 14 PHP
php基于单例模式封装mysql类完整实例
Oct 18 PHP
PHP创建自己的Composer包方法
Apr 09 PHP
PHP autoload使用方法及步骤详解
Sep 05 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版 汉字转码的实现详解
2013/06/09 PHP
Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境
2015/03/03 PHP
详解HTTP Cookie状态管理机制
2016/01/14 PHP
PHP+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
2016/05/06 PHP
通过 Dom 方法提高 innerHTML 性能
2008/03/26 Javascript
javascript 写类方式之二
2009/07/05 Javascript
JavaScript实现16进制颜色值转RGB的方法
2015/02/09 Javascript
纯js实现无限空间大小的本地存储
2015/06/18 Javascript
把Node.js程序加入服务实现随机启动
2015/06/25 Javascript
文件上传,iframe跨域数据提交的实现
2016/11/18 Javascript
vue数据双向绑定的注意点
2017/06/23 Javascript
Thinkphp5微信小程序获取用户信息接口的实例详解
2017/09/26 Javascript
react-native中ListView组件点击跳转的方法示例
2017/09/30 Javascript
AngularJS的$location使用方法详解
2017/10/19 Javascript
微信开发之微信jssdk录音功能开发示例
2018/10/22 Javascript
Vue 页面状态保持页面间数据传输的一种方法(推荐)
2018/11/01 Javascript
js对象简介与基本用法示例
2020/03/13 Javascript
[36:33]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.29
2020/12/02 DOTA
python字典的常用操作方法小结
2016/05/16 Python
python爬虫之线程池和进程池功能与用法详解
2018/08/02 Python
Python控制台实现交互式环境执行
2020/06/09 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
2020/08/03 Python
超级实用的8个Python列表技巧
2020/08/24 Python
python 如何设置守护进程
2020/10/29 Python
Opencv python 图片生成视频的方法示例
2020/11/18 Python
关于django python manage.py startapp 应用名出错异常原因解析
2020/12/15 Python
大学毕业感言200字
2014/03/09 职场文书
在职员工证明书
2014/09/19 职场文书
卖房协议书样本
2014/10/30 职场文书
好媳妇事迹材料
2014/12/24 职场文书
财务个人年度总结范文
2015/02/26 职场文书
教师求职信怎么写
2015/03/20 职场文书
法定代表人免职证明
2015/06/24 职场文书
学习《中小学教师职业道德规范》心得体会
2016/01/18 职场文书
CSS3 天气图标动画效果
2021/04/06 HTML / CSS
关于windows server 2012 DC 环境 重启后蓝屏代码:0xc00002e2的问题
2022/05/25 Servers