PHP 转义使用详解

yipeiwu_com6年前PHP代码库

php中数据的魔法引用函数 magic_quotes_gpc  或 magic_quotes_runtime    

设置为on时,为我们引用的数据碰到 单引号' 和 双引号" 以及 反斜线\ 时自动加上反斜线,帮我们自动转译符号,确保数据操作的正确运行
两者的区别:

magic_quotes_gpc
作用范围是:WEB客户服务端;
作用时间:请求开始是,例如当脚本运行时。

magic_quotes_runtime
作用范围:从文件中读取的数据或执行exec()的结果或是从SQL查询中得到的;
作用时间:每次当脚本访问运行状态中产生的数据。

可以看出
magic_quotes_gpc的设定值将会影响通过Get/Post/Cookies获得的数据
magic_quotes_runtime的设定值将会影响从文件中读取的数据或从数据库查询得到的数据

几个想关联的函数:
set_magic_quotes_runtime():
设置magic_quotes_runtime值. 0=关闭.1=打开.默认状态是关闭的.可以通过 echo phpinfo(); 查看magic_quotes_runtime
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的值。

由于两个值的设置问题,会给编程时造成部分混淆或者会多加一次转义,针对这种情况,需要在程序开始的时候进行设置和判断,或者默认配置
这两个值都关闭。转义部分通过程序来执行。

保证数据插入数据时正常 通常会使用 addslashes 这个来处理, 数据读出时多用 stripslashes 来去掉加的反斜杠

php中类似的字符转换的函数
addslashes                         指定的预定义字符前添加反斜杠
stripslashes                        删除由 addslashes() 函数添加的反斜杠
htmlspecialchars                把一些预定义的字符转换为 HTML 实体
htmlspecialchars_decode  把一些预定义的 HTML 实体转换为字符
html_entity_decode()        把 HTML 实体转换为字符
htmlentities()                     把字符转换为 HTML 实体

相关文章

ThinkPHP与PHPExcel冲突解决方法

很早之前就知道有一个叫做PHPExcel的类(官方网站)可以用来操作Excel,一直没有机会尝试,今天试用发现无比强大,下载后的源码包里有详细文档,几乎能实现手工操作Excel能实现的一...

PHP多文件上传类实例

本文实例讲述了PHP多文件上传类。分享给大家供大家参考。具体如下: 复制代码 代码如下:<?php /* PHP多文件上传类 修改:Linvo 2008-2-15 */...

php简单读取.vcf格式文件的方法示例

本文实例讲述了php简单读取.vcf格式文件的方法。分享给大家供大家参考,具体如下: /** * 读取.vcf格式文件 * @param $filename */ function...

PHP抽象类和接口用法实例详解

本文实例讲述了PHP抽象类和接口用法。分享给大家供大家参考,具体如下: 前言 对于oop,估计大多数人并不陌生。有些人除PHP外也学习不少其他语言,会发现php的不同之处,可能语法极其丑...

PHP set_time_limit(0)长连接的实现分析

每个PHP脚本都限制了执行时间,所以我们需要通过 set_time_limit 来设置一个脚本的执行时间为无限长;然后使用 flush() 和 ob_flush() 来清除服务器缓冲区,...