当前位置:  编程技术>php

PHP常用转义字符函数

    来源: 互联网  发布时间:2014-10-04

    本文导语:  本节内容: php转义字符函数用法。 1. addslashes addslashes对SQL语句中的特殊字符进行转义操作,包括(‘), (“), (), (NUL)四个字符,此函数在DBMS没有自己的转义函数时候使用,但是如果DBMS有自己的转义函数,那么推荐使用原装函数...

本节内容:
php转义字符函数用法。

1. addslashes
addslashes对SQL语句中的特殊字符进行转义操作,包括(‘), (“), (), (NUL)四个字符,此函数在DBMS没有自己的转义函数时候使用,但是如果DBMS有自己的转义函数,那么推荐使用原装函数,比如MySQL有mysql_real_escape_string函数用来转义SQL。 注意在PHP5.3之前,magic_quotes_gpc是默认开启的,其主要是在$GET, $POST, $COOKIE上执行addslashes操作,所以不需要在这些变量上重复调用addslashes,否则会double escaping的。不过magic_quotes_gpc在PHP5.3就已经被废弃,从PHP5.4开始就已经被移除了,如果使用PHP最新版本可以不用担心这个问题。stripslashes为addslashes的unescape函数。

2. htmlspecialchars
htmlspecialchars把HTML中的几个特殊字符转义成HTML Entity(格式:&xxxx;)形式,包括(&),(‘),(“),()五个字符。
& (AND) => &
” (双引号) => " (当ENT_NOQUOTES没有设置的时候)
‘ (单引号) => ' (当ENT_QUOTES设置)
< (小于号) =>
(大于号) => >  
htmlspecialchars可以用来过滤$GET,$POST,$COOKIE数据,预防XSS。注意htmlspecialchars函数只是把认为有安全隐患的HTML字符进行转义,如果想要把HTML所有可以转义的字符都进行转义的话请使用htmlentities。htmlspecialchars_decode为htmlspecialchars的decode函数。

3. htmlentities
htmlentities把HTML中可以转义的内容转义成HTML Entity。html_entity_decode为htmlentities的decode函数。

4. mysql_real_escape_string
mysql_real_escape_string会调用MySQL的库函数mysql_real_escape_string,对(x00), (n), (r), (), (‘), (x1a)进行转义,即在前面添加反斜杠(),预防SQL注入。注意你不需要在读取数据库数据的时候调用stripslashes来进行unescape,因为这些反斜杠是在数据库执行SQL的时候添加的,当把数据写入到数据库的时候反斜杠会被移除,所以写入到数据库的内容就是原始数据,并不会在前面多了反斜杠。

5. strip_tags
strip_tags会过滤掉NUL,HTML和PHP的标签。

6. 结语
PHP自带的安全函数并不能完全避免XSS,推荐使用HTML Purifier。

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

    
 
 

您可能感兴趣的文章:

  • php数组递归转义实例详解,php转义函数
  • php正则表达式转义字符的例子
  • php mysql转义特殊字符函数
  • php mysql转义特殊字符的函数有哪些?
  • php特殊字符转义函数
  • PHP中常用的转义函数
  • php特殊字符转义详解
  • PHP正则表达式基本函数 修饰符 元字符和需转义字符说明
  • php字符转义函数参考
  • PHP的substr() 函数用法
  • php构造函数与析构函数
  • php构造函数与析构函数初探 iis7站长之家
  • php构造函数与析构函数初探
  • php session_id()函数介绍及代码实例
  • PHP中的Pack()函数,Java有哪个函数与之对应???
  • php中session_id()函数详细介绍,会话id生成过程及session id长度
  • php构造函数与析构函数 php内存管理函数
  • php将html特殊字符转换成html字符串的函数:htmlspecialchars()介绍及代码举例
  • php数组函数之array_combine() 数组合并函数
  • php使用socket_bind()函数绑定IP地址
  • php构造函数和析构函数学习
  • php将unix时间戳转换成字符串时间函数(date)
  • php trim函数执行过程解析
  • php通过pack和unpack函数实现对二进制数据封装及解析
  • php递归函数小例子
  • php时间格式化函数date介绍及用法参考
  • php sprintf函数用法 php浮点数格式
  • php递归示例 php递归函数代码
  • php构造函数与析构函数实例分析
  • 在php中如何用exec()函数运行mv命令
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • php将标准字符串格式时间转换成unix时间戳_strtotime
  • php判断字符串是否存在 php字符串检测代码
  • php使用strip_tags从字符串中去除html标记
  • php逐字拆分字符串 php字符串拆分实例
  • php判断字符串在另一个字符串位置的方法
  • php判断字符与字符串的包含方法属性
  • php字符串查找 查找字符最后一次出现位置
  • php像数组一样存取和修改字符串字符
  • PHP中比较两个字符串找出第一个不同字符位置例子
  • Solaris、Apache和Php字符集问题
  • PHP获取一个字符串中间一部分字符的方法
  • php如何截取字符串后四位
  • php二维数组转换为字符串示例
  • php生成指定位数(长度)的随机字符串
  • php截取字符串(无乱码 utf8)
  • php 判断字符串是否包含html标签
  • PHP替换字符串(只替换首个字符串)
  • php字符串分割函数explode实例
  • php压缩函数(gzcompress gzuncompress)压缩字符串
  • PHP生成自定义长度随机字符串的函数分享
  • php mb_substr()函数截取中文字符串应用示例
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • IIS7配置PHP图解(IIS7+PHP_5.2.17/PHP_5.3.5)
  • PHP 5.4.19 和 PHP 5.5.3 发布及下载地址
  • php输入流php://input使用示例(php发送图片流到服务器)
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • PHP转换器 HipHop for PHP
  • PHP去除html标签,php标记及css样式代码参考
  • PHP 框架 Pop php
  • PHP 'ext/soap/php_xml.c'不完整修复存在多个任意文件泄露漏洞
  • PHP的JavaScript框架 PHP.JS


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3