• 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; 中文
    
    ?>
  • 相关阅读:
    Python数组操作将一维数组变成二维数组
    Python做一个计时器的动画
    tkinter添加背景音乐
    IDEA——配置代码检测
    Jenkins构建 前端node项目
    linux下python相关命令
    推荐几个IT交流社区
    jenkins常用插件
    linux上安装newman
    linux+jenkins+postman持续集成
  • 原文地址:https://www.cnblogs.com/mengzhongshi/p/3474334.html
Copyright © 2020-2023  润新知