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 相关文章推荐
用header 发送cookie的php代码
Mar 16 PHP
PHP 实例化类的一点摘记
Mar 23 PHP
php 随机数的产生、页面跳转、件读写、文件重命名、switch语句
Aug 07 PHP
基于Linux调试工具strace与gdb的常用命令总结
Jun 03 PHP
php登陆页的密码处理方式分享
Oct 14 PHP
destoon调用discuz论坛中带图片帖子的实现方法
Aug 21 PHP
CodeIgniter多语言实现方法详解
Jan 20 PHP
PHP中功能强大却很少使用的函数实例小结
Nov 10 PHP
PHP文件管理之实现网盘及压缩包的功能操作
Sep 20 PHP
PHP7引入的"??"和"?:"的区别讲解
Apr 08 PHP
laravel框架实现去掉URL中index.php的方法
Oct 12 PHP
php post换行的方法
Feb 03 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
常用星际术语索引(新手指南)
2020/03/04 星际争霸
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
2011/10/17 PHP
PHP读取大文件的类SplFileObject使用介绍
2014/04/09 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
2016/10/08 PHP
Linux平台php命令行程序处理管道数据的方法
2016/11/10 PHP
PHP面向对象程序设计之对象生成方法详解
2016/12/02 PHP
PHP生成图表pChart的示例解析
2020/07/31 PHP
jQuery 解析xml文件
2009/08/09 Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
2013/11/25 Javascript
如何用JavaScript定义一个类
2014/09/12 Javascript
微信支付如何实现内置浏览器的H5页面支付
2015/09/25 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件包装
2015/11/20 Javascript
AngularJS实现Model缓存的方式
2016/02/03 Javascript
JavaScript中split与join函数的进阶使用技巧
2016/05/03 Javascript
AngularJs实现分页功能不带省略号的代码
2016/05/30 Javascript
详解小程序input框失焦事件在提交事件前的处理
2019/05/05 Javascript
JS用最简单的方法实现四舍五入
2019/08/27 Javascript
JavaScript仿京东秒杀倒计时
2020/03/17 Javascript
微信小程序12行js代码自己写个滑块功能(推荐)
2020/07/15 Javascript
[51:29]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
python中while循环语句用法简单实例
2015/05/07 Python
python中偏函数partial用法实例分析
2015/07/08 Python
Python实现TCP/IP协议下的端口转发及重定向示例
2016/06/14 Python
Python实现的概率分布运算操作示例
2017/08/14 Python
3个用于数据科学的顶级Python库
2018/09/29 Python
详解Django中CBV(Class Base Views)模型源码分析
2019/02/25 Python
python numpy 反转 reverse示例
2019/12/04 Python
Python如何合并多个字典或映射
2020/07/24 Python
编写python代码实现简单抽奖器
2020/10/20 Python
Html5 new XMLHttpRequest()监听附件上传进度
2021/01/14 HTML / CSS
巴西独家产品和现场演示购物网站:Shoptime
2019/07/11 全球购物
Java的基础面试题附答案
2016/01/10 面试题
介绍一下.net和Java的特点和区别
2012/09/26 面试题
11月升旗仪式讲话稿
2014/02/15 职场文书
行政复议决定书
2015/06/24 职场文书
幼儿园音乐教学反思
2016/02/18 职场文书