• php过滤字段htmlentities,htmlspecialchars,strip_tags


    1.strip_tags:过滤html标签比如<a> <html> <script>

    如:

     $str = '<a href="test.html">文字内容</a><script>alert(213)</script>';
     echo strip_tags($str);

    输出结果:
    文字内容alert(213)
    去掉了<script></script> 标签 
    应用场景:去掉表单提交内容的html标签


    2.htmlentities,htmlspecialchars 过滤字段的各种特殊符号
    区别一:
    htmlentities对欧元符号'€'转义,美元符号'$' 不转义
    htmlspecialchars对欧元符号'€'不转义,美元符号'$' 不转义

    区别二:
    $str = '<a href="demo.php?m=index&a=index&name=中文">测试页面</a>';
    
    echo 'htmlentities指定GB2312编码:'.htmlentities($str,ENT_COMPAT,"GB2312").'';
    
    echo 'htmlentities未指定编码:'.htmlentities($str).'';
    
    $str = '<a href="demo.php?m=index&a=index&name=中文">测试页面</a>';
    
    echo htmlspecialchars($str).'';

    输出:

    htmlentities指定GB2312编码:<a href="demo.php?m=index&a=index&name=中文">测试页面</a>
    
    htmlentities未指定编码:<a href="demo.php?m=index&a=index&name=ÖÐÎÄ">²âÊÔÒ³Ãæ</a>
    
    <a href="demo.php?m=index&a=index&name=中文">测试页面</a>

    测试

    $str='<a href="test.html">测试</a>';
            $transstr = htmlspecialchars($str) ;
            echo $transstr . "<br />";
            echo htmlspecialchars_decode($transstr);

    总结:htmlentities会转化所有的html代码,连同里面的它无法识别的中文字符也给转化了(当有中文的时候会变成乱码)。htmlspecialchars 只会转化部分代码(如:& ' " < 和 > )

    结论:有中文的时候用htmlspecialchars,使用htmlentities 必须要 htmlentities($str, ENT_COMPAT, 'gb2312'); strip_tags防止<a href> <script>alert(1)</script> html标签提交





  • 相关阅读:
    Qt操作xml文件(增删改功能)
    Qt解析xml
    Qt中使用DOM解析XML文件或者字符串二(实例)
    Qt中使用DOM解析XML文件或者字符串(实例)
    QThread 实用技巧、误区----但文档中没有提到
    事件循环与线程 二
    事件循环与线程 一
    第一讲 递归
    Ubuntu 建立桌面快捷方式
    Codeforces554B:Ohana Cleans Up
  • 原文地址:https://www.cnblogs.com/wesky/p/7443910.html
Copyright © 2020-2023  润新知