php htmlspecialchars()与shtmlspecialchars()函数的深入分析

定义和用法
htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。

预定义的字符是:
•& (和号) 成为 &
•" (双引号) 成为 "
•' (单引号) 成为 '
•< (小于) 成为 <
•> (大于) 成为 >
语法
htmlspecialchars(string,quotestyle,character-set)














参数 描述
string 必需。规定要转换的字符串。
quotestyle

可选。规定如何编码单引号和双引号。

  • ENT_COMPAT - 默认。仅编码双引号。
  • ENT_QUOTES - 编码双引号和单引号。
  • ENT_NOQUOTES - 不编码任何引号。
character-set

可选。字符串值,规定要使用的字符集。

  • ISO-8859-1 - 默认。西欧。
  • ISO-8859-15 - 西欧(增加 Euro 符号以及法语、芬兰语字母)。
  • UTF-8 - ASCII 兼容多字节 8 比特 Unicode
  • cp866 - DOS 专用 Cyrillic 字符集
  • cp1251 - Windows 专用 Cyrillic 字符集
  • cp1252 - Windows 专用西欧字符集
  • KOI8-R - 俄语
  • GB2312 - 简体中文,国家标准字符集
  • BIG5 - 繁体中文
  • BIG5-HKSCS - Big5 香港扩展
  • Shift_JIS - 日语
  • EUC-JP - 日语

提示和注释
提示:
无法被识别的字符集将被忽略,并由 ISO-8859-1 代替。
例子


代码如下:

<html>
    <body>
    <?php
        $str = "John & 'Adams'";
        echo htmlspecialchars($str, ENT_COMPAT);
        echo "<br />";
        echo htmlspecialchars($str, ENT_QUOTES);
        echo "<br />";
        echo htmlspecialchars($str, ENT_NOQUOTES);
    ?>
    </body>
</html>

浏览器输出:


代码如下:

John & 'Adams'
John & 'Adams'
John & 'Adams'

如果在浏览器中查看源代码,会看到这些 HTML:


代码如下:

<html>
    <body>
    John & 'Adams'<br />John & 'Adams'<br />John & 'Adams'    </body>
</html>

=======================================================================
shtmlspecialchars() 函数正好相反

(0)

相关推荐

  • php中filter函数验证、过滤用户输入的数据

    PHP Filter 简介 PHP 过滤器用于对来自非安全来源的数据(比如用户输入)进行验证和过滤. 复制代码 代码如下: //除去html标签,或除去编码特殊字符 var_dump(filter_var("<html>中文ABC@#</html><script>abc</script><b>BBB</b><span>",FILTER_SANITIZE_STRING)); //url_encoded编码

  • PHP开发不能违背的安全规则 过滤用户输入

    作为最基本的防范你需要注意你的外部提交,做好第一面安全机制处理防火墙. 规则 1:绝不要信任外部数据或输入 关于Web应用程序安全性,必须认识到的第一件事是不应该信任外部数据.外部数据(outside data) 包括不是由程序员在PHP代码中直接输入的任何数据.在采取措施确保安全之前,来自任何其他来源(比如 GET 变量.表单 POST.数据库.配置文件.会话变量或 cookie)的任何数据都是不可信任的. 例如,下面的数据元素可以被认为是安全的,因为它们是在PHP中设置的. 复制代码 代码如

  • php HtmlReplace输入过滤安全函数

    复制代码 代码如下: // $rptype = 0 表示仅替换 html标记 // $rptype = 1 表示替换 html标记同时去除连续空白字符 // $rptype = 2 表示替换 html标记同时去除所有空白字符 // $rptype = -1 表示仅替换 html危险的标记 function HtmlReplace($str,$rptype=0) { $str = stripslashes($str); if($rptype==0) { $str = htmlspecialchar

  • php htmlentities和htmlspecialchars 的区别

    The translations performed are: 复制代码 代码如下: '&' (ampersand) becomes '&' '"' (double quote) becomes '"' when ENT_NOQUOTES is not set. ''' (single quote) becomes ''' only when ENT_QUOTES is set. '<' (less than) becomes '<' '>' (gre

  • php 字符过滤类,用于过滤各类用户输入的数据

    详细代码如下: 复制代码 代码如下: <?php abstract class Filter { //filter parent class private $blackstr = array(); private $whitestr = array(); function filtit($str) { //do something } } class LoginFilter extends Filter { //for user login filte username(过滤注册的用户名) f

  • php 对输入信息的进行安全过滤的函数代码

    复制代码 代码如下: // define constannts for input reading define('INPUT_GET', 0x0101); define('INPUT_POST', 0x0102); define('INPUT_GPC', 0x0103); /** * Read input value and convert it for internal use * Performs stripslashes() and charset conversion if neces

  • php过滤输入操作之htmlentities与htmlspecialchars用法分析

    本文实例讲述了php过滤输入操作htmlentities与htmlspecialchars用法.分享给大家供大家参考,具体如下: 过滤输入 (即来自所列数据源中的任何数据)是指,转义或删除不安全的字符.在数据到达应用的存储层之前,一定要过滤输入数据.这是第一道防线.假如网站的评论表单接收html,默认情况下访客可以毫无阻拦地在评论中加入恶意的<script>标签,如下标示: <p> 我的测试 </p> <script>alert(123)</scrip

  • php htmlentities()函数的定义和用法

    php htmlentities() 函数把字符转换为 HTML 实体,本文章向码农介绍php htmlentities() 函数基本使用方法和实例介绍,需要的码农可以参考一下. 定义和用法 htmlentities() 函数把字符转换为 HTML 实体. 提示:要把 HTML 实体转换回字符,请使用 html_entity_decode() 函数. 提示:请使用 get_html_translation_table() 函数来返回 htmlentities() 使用的翻译表. 语法 htmle

  • PHP关于htmlspecialchars、strip_tags、addslashes的解释

    PHP的htmlspecialchars.strip_tags.addslashes是网页程序开发中常见的函数,今天就来详细讲述这些函数的用法: 1.函数strip_tags:去掉 HTML 及 PHP 的标记 注意:本函数可去掉字串中包含的任何 HTML 及 PHP 的标记字串.若是字串的 HTML 及 PHP 标签原来就有错,例如少了大于的符号,则也会传回错误.而本函数和 fgetss() 有着相同的功能.fgetss是从文件中读取文件,并去掉html和php标记. 2.函数htmlspec

  • php 去除html标记--strip_tags与htmlspecialchars的区别详解

    strip_tags 去掉 HTML 及 PHP 的标记. 语法: string strip_tags(string str); 传回值: 字串 函式种类: 资料处理 内容说明 本函式可去掉字串中包含的任何 HTML 及 PHP 的标记字串.若是字串的 HTML 及 PHP 标签原来就有错,例如少了大于的符号,则也会传回错误.而本函式和 fgetss() 有着相同的功能. htmlspecialchars 将特殊字元转成 HTML 格式. 语法: string htmlspecialchars(

  • php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总

    从旧版升级到php5.4,恐怕最麻烦的就是htmlspecialchars这个问题了!当然,htmlentities也会受影响,不过,对于中文站来说一般用htmlspecialchars比较常见,htmlentities非常少用到. 可能老外认为网页普遍应该是utf-8编码的,于是苦了那些用GB2312,GBK编码的中文站......! 具体表现: 复制代码 代码如下: $str = "9enjoy.com的php版本是5.2.10"; echo htmlspecialchars($s

  • php htmlspecialchars加强版

    复制代码 代码如下: //取消HTML代码 function shtmlspecialchars($string) { if(is_array($string)) { foreach($string as $key => $val) { $string[$key] = shtmlspecialchars($val); } } else { $string = preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5})

随机推荐