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 实体

(0)

相关推荐

  • 使用PHP数组实现无限分类,不使用数据库,不使用递归.

    复制代码 代码如下: <?php class cat {     public $data; public function __construct()      {         @include "data.php";         $this->data = $class;     } public function CreateSortLevel($fatherlevel)     {         if(empty($fatherlevel))       

  • php防注入,表单提交值转义的实现详解

    在开发时,我们要注意防止sql注入,所以在对表单提交过来的值要做相应的处理,才可以把数据更新到数据库里php横扫千军函数.任何值都可以传过来转换 复制代码 代码如下: function quotes($content)     {         //如果magic_quotes_gpc=Off,那么就开始处理         if (!get_magic_quotes_gpc()) {             //判断$content是否为数组          if (is_array($c

  • PHP中常用的转义函数

    1. addslashes addslashes对SQL语句中的特殊字符进行转义操作,包括('), ("), (), (NUL)四个字符,此函数在DBMS没有自己的转义函数时候使用,但是如果DBMS有自己的转义函数,那么推荐使用原装函数,比如MySQL有mysql_real_escape_string函数用来转义SQL. 注意在PHP5.3之前,magic_quotes_gpc是默认开启的,其主要是在$GET, $POST, $COOKIE上执行addslashes操作,所以不需要在这些变量上重

  • php中转义mysql语句的实现代码

    你总不可能对每一个这样的特殊字符都人工进行转义,何况你通常处理的都是表单自动提交的内容. 所以,应该使用mysql_real_escape_string函数: mysql_real_escape_string - 转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集. 但是注意:该函数并不转义 % 和 _.另外,最好不要对整条sql语句使用该函数,而是只转义传入sql语句的字符串参数,否则会发生意想不到的结果. 脚本举例: 复制代码 代码如下: <?php $item = &quo

  • php 字符转义 注意事项

    在php中: * 以单引号为定界符的php字符串,支持两个转义\'和\\ * 以双引号为定界符的php字符串,支持下列转义: \n 换行(LF 或 ASCII 字符 0x0A(10)) \r 回车(CR 或 ASCII 字符 0x0D(13)) \t 水平制表符(HT 或 ASCII 字符 0x09(9)) \\ 反斜线 \$ 美元符号 \" 双引号 \[0-7]{1,3} 此正则表达式序列匹配一个用八进制符号表示的字符 \x[0-9A-Fa-f]{1,2} 此正则表达式序列匹配一个用十六进制符

  • PHP对象转换为数组函数(递归方法)

    返回的是一个层次比较分明的数组对象,希望对大家有所帮助,来源WEB开发笔记(www.chhua.com). 复制代码 代码如下: function object_to_array($obj) { $_arr = is_object($obj) ? get_object_vars($obj) : $obj; foreach ($_arr as $key => $val) { $val = (is_array($val) || is_object($val)) ? object_to_array($

  • sql注入与转义的php函数代码

    sql注入: 正常情况下: delete.php?id=3; $sql = 'delete from news where id = '.$_GET['id']; 恶意情况: delete.php?id=3 or 1; $sql = 'delete from news where id = 3 or 1';  -------如此执行后,所有的记录将都被删除 应该采取相关措施...比如用之前先判断是否是数字等等. 要使自己相信,从客户端传来的信息永远是不可靠的!! 转义: 有时候从客户端传来的数据

  • php 防止单引号,双引号在接受页面转义

    PHP页面中如果不希望出现以下情况: 单引号被转义为 /' 双引号被转义为 /" 那么可以进行如下设置以防止: 方法一:在php.ini中设置:magic_quotes_gpc = Off 方法二: $str=stripcslashes($str)

  • PHP实现数组递归转义的方法

    本文以实例形式讲述了PHP实现数组递归转义的方法,分享给大家供大家参考之用.具体方法如下: 主要功能代码如下: $arr = array('a"aa',array("c'd",array('e"f'))); function changes($arr){ foreach($arr as $k=>$v){ if (is_string($v)){ $arr[$k] = addslashes($v); }else if (is_array($v)) { //若为数组

  • 利用php递归实现无限分类 格式化数组的详解

    我们要做一个商品的无限分类首先数据库字段为:id ----------商品主键idfid ---------- 商品父idname ---------- 商品名最后输出的数组格式为 复制代码 代码如下: <PRE class=php name="code"><PRE class=php name="code">array( 0=>array(  'id'=>1,  'fid'=>0,  'name'=>'法国货'  '

  • php下防止单引号,双引号在接受页面转义的设置方法

    PHP页面中如果不希望出现以下情况: 单引号被转义为 \' 双引号被转义为 \" 那么可以进行如下设置以防止: 方法一:在PHP.ini中设置:magic_quotes_gpc = Off 方法二: $str=stripcslashes($str)

  • PHP字符转义相关函数小结(php下的转义字符串)

    文章中有不正确的或者说辞不清的地方,麻烦大家指出了--- 与PHP字符串转义相关的配置和函数如下: 1.magic_quotes_runtime 2.magic_quotes_gpc 3.addslashes()和stripslashes() 4.mysql_escape_string() 5.addcslashes()和stripcslashes() 6.htmlentities() 和html_entity_decode() 7.htmlspecialchars()和htmlspecialc

随机推荐