zoukankan      html  css  js  c++  java
  • htmlspecialschars与htmlentities的区别

    根据php手册,htmlentities与htmlspecialchars功能几乎是一模一样。唯一的差别就是,对于无效的代码单元序列(通俗讲就是不认识的编码)是否进行编码。htmlentities会进行编码,而htmlspecialchars不会。

    举个简单的例子:

    一个php文件是以utf-8格式编码的,里面存放中文字符,这时你使用htmlentities,而且encoding设置为ISO-8859-1, 中文字符就会被编码了,如下面

    <?php
    $str = '中文字符';
    echo htmlentities($str, ENT_QUOTES, 'ISO-8859-1');
    //&auml;&cedil;&shy;&aelig;��&aring;&shy;&ccedil;&not;&brvbar;
    echo htmlentities($str, ENT_QUOTES, 'UTF-8');
    //中文字符
    ?>

    htmlentites的使用

    htmlentities(string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = 'UTF-8' [, bool $double_encode = true ]]] )后面可带4个参数。

    <?php
    //ENT_COMPAT不转化'字符,ENT_QUOTES转化
    $str = "< ' " > 
    ";
    echo htmlentities($str, ENT_COMPAT);
    echo htmlentities($str, ENT_QUOTES);
    //ouput:
    //&lt; ' &quot; &gt;
    //&lt; &#039; &quot; &gt;
    
    //ENT_NOQUOTES单引号和双引号都不转化
    //ENT_IGNORE于php5.3加入,对于无效的代码单元序列直接替换成empty string
    //ENT_SUBSTITUTE与ENT_IGNORE类似,但不是用empty string替换。php5.4加入
    //参数可以通过位运算加入:ENT_QUOTES | ENT_IGNORE
    
    //$encoding参数设置文档编码
    //现在文档设置成ANSI编码,然后运行下面偌
    $str = "< ' " > 中文
    ";
    echo htmlentities($str, ENT_QUOTES, 'GB2312');
    echo htmlentities($str, ENT_QUOTES, 'ISO8859-1');
    echo htmlentities($str, ENT_QUOTES, 'BIG5');
    //OUTPUT:
    //&lt; &#039; &quot; &gt; 中文
    //&lt; &#039; &quot; &gt; &Ouml;&ETH;&Icirc;&Auml;
    //&lt; &#039; &quot; &gt; 中文
    
    //现在文档设置成UTF8编码,然后运行下面偌
    $str = "< ' " > 中文
    ";
    echo htmlentities($str, ENT_QUOTES, 'GB2312');
    echo htmlentities($str, ENT_QUOTES, 'ISO8859-1');
    echo htmlentities($str, ENT_QUOTES, 'UTF-8');
    //OUTPUT:
    //&lt; &#039; &quot; &gt; &auml;&cedil;&shy;&aelig;??
    //&lt; &#039; &quot; &gt; &auml;&cedil;&shy;&aelig;??
    //&lt; &#039; &quot; &gt; 中文
    
    ?>
  • 相关阅读:
    如何创建线程详解(二)
    JAVA 多线程和进程概念的引入
    JMeter压力测试
    建模揭秘----构建用户模型
    浅谈“领域驱动设计”
    Restlet 学习笔记
    实则以数据库为中心---其实数据库不存在
    基于可重用构件的软件开发过程模型
    四层架构设计模型驱动
    架构
  • 原文地址:https://www.cnblogs.com/mengzhongshi/p/3474334.html
Copyright © 2011-2022 走看看