Form表单提交对于html编辑器编辑的内容加密与解密

htmlspecialchars()和htmlspecialchars_decode()

  1. 加密:htmlspecialchars()函数把一些预定义的字符转换为 HTML 实体。

       这些预定义的字符是: 
      & (和号) 成为 & 
      " (双引号) 成为 " 
      ' (单引号) 成为 ' 
     < (小于) 成为 < 
     > (大于) 成为 > 

     例子:一个html页面

<script type="text/javascript" src="/editor/kindeditor.js"></script>
<script type="text/javascript" src="/editor/lang/zh_CN.js"></script>
<form class="form-horizontal" name="sub_td" id="cpt_main" action="/content/add" role="form"  enctype="multipart/form-data" method="post"  onsubmit="" />
     <textarea style="width:800px; height:450px;" class="content" name="content" id="content"></textarea>
</from>
<script>
KindEditor.ready(function(K) {
    window.editor = K.create('#content',{

        // 指定大小
        width:'800px',
        height:'400px',
    });
});
// php
KindEditor.ready(function(K) {
        K.create('#content', {
                uploadJson : '/editor/php/upload_json.php',
                fileManagerJson : '/editor/php/file_manager_json.php',
                allowFileManager : true
        });
});
</script>

提交到控制器页面content.php,将提交内容加密

$contents = htmlspecialchars($_POST['content'],ENT_COMPAT ,'utf-8');
$newdata['content']       = $contents;

 

  1. 解密:htmlspecialchars_decode() 把一些预定义的 HTML 实体转换为字符

前端解密读取数据

<div class="new_con">
        <?php echo htmlspecialchars_decode($condata['Newsdata']['content']);?>
</div>

 

htmlentities和htmlspecialchars 的区别

htmlspecialchars 只转化几个html代码,

htmlentities 却会转化所有的html代码,连同里面的它无法识别的中文字符也给转化了。
 

$str='<a href="test.html">测试页面</a>'; 
echo htmlentities($str); 
// <a href="test.html">²âÊÔÒ³Ãæ</a> 

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

结论是,有中文的时候,最好用 htmlspecialchars ,否则可能乱码
 

结论:htmlentities 和 htmlspecialchars 的区别在于 htmlentities 会转化所有的 html character entity,而htmlspecialchars 只会转化手册上列出的几个 html character entity (也就是会影响 html 解析的那几个基本字符)。一般来说,使用 htmlspecialchars 转化掉基本字符就已经足够了,没有必要使用 htmlentities。实在要使用 htmlentities 时,要注意为第三个参数传递正确的编码。

转载于:https://my.oschina.net/meng527/blog/1523292

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值