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; 中文
    
    ?>
  • 相关阅读:
    js 右击
    javascript 中的函数,控制流, 事件委托
    javascript 的 this , js 线程
    javascript 中的var : 隐含变量 全局变量 变量提升
    明日
    ajax循环json 中的 for(var prop in data) 与 hasProperty()
    js继承机制
    callee, caller,toString(),String()
    解决eclipse中jsp下无代码提示问题
    商业模式
  • 原文地址:https://www.cnblogs.com/mengzhongshi/p/3474334.html
Copyright © 2011-2022 走看看