当前位置: 首页 > news >正文

summernote html标签,关于summernote编辑器代码段html的插入问题

最近在做这个视频学习网站的时候,由于这个程序的代码编辑器使用的是summernote,所以就需要插入代码,让大家看的更清楚一点,之前想过使用一些高亮的插件,但是发现没有太大必要,只要大家看的清楚就可以了。

本身在这个编辑器里就一个代码段,查看源代码我们不难发现其本身就是增加了

标签。这样我们就可以通过前台进行对pre标签的css,进行展示。

不过发现在后台插入的时候没有太大问题,但是更改的时候,发现从数据库取出的数据,被浏览器给识别了,这就造成修改保存出现了很大的问题。

仔细翻看了网上的资料发现,究其根本原因就是html的转义问题,summernote并没有对单双引号进行转义,所以,我需要在提交到数据库的时候使用一些方法进行转义,然后在输出的时候再次转义一下。

又由于本身网站就是utf8的统一编码,所以不需要考虑编码的问题。

贴出代码public function update_article($id)

{

$id = !empty($id) ? intval($id) : exit('param id error');

$title = $this->input->post("title");

$body = $this->input->post("body");

$body = htmlentities($body);

$des = $this->input->post("des");

$keywords = $this->input->post("keywords");

$cid = $this->input->post("cid");

$pic = $this->input->post("pic_url",TRUE) == '' ? $this->pic_default($cid) : $this->input->post("pic_url",TRUE);

$author = $this->input->post("author");

$video_url= $this->input->post("video_url");

$re_id= $this->input->post("re_id");

这里是关键$body = $this->input->post("body");

$body = htmlentities($body);

然后我们在前台输入的时候使用html_entity_decode,再将转义的代码再次转义回来。

问题解决,需要注意的地方,猜测,summernote本身在初始化的时候可以识别转义的代码,所以在它初始化之前不需要进行转移输出。

第二,注意在如果使用的也是ci框架,记得这里的true要去掉。$body = $this->input->post("body",TRUE);

最主要的问题就是html在php程序下的转义实现。

相关文章:

  • JavaEE下的测试驱动 乱弹
  • html替换标题工具,TEReplace插件快速替换Typecho标题/内容关键字
  • 忙碌并快乐的2008北京春季之旅
  • 山西师范大学数学与计算机学院宿舍,山西师范大学数学与计算机学院介绍
  • 地大计算机学校2020考研大纲,【2020-2021】院校计算机考研初试科目变动情况统计...
  • 北交计算机考研保护一志愿吗,09我的考研之旅(北交计算机)
  • 2010年秋 江苏计算机二级,2011年秋江苏省计算机二级考试参考答案公布(10月15号考试)...
  • Microsoft Announcing Windows Mobile 6.1 from LAS VEGAS April 1, 2008
  • 计算机系统精品课,计算机系统-攀枝花学院精品课程网.ppt
  • 离散点插值方法、等值线的绘制及平滑技巧
  • sql使用正则表达式替换字符中的一个字
  • html水平镜像和垂直镜像,css实现镜像翻转的方法有哪些
  • 小胖子5个月了
  • 计算机等级考试两天是,2017计算机等级考试考前最后两天如何调整备考心态
  • Widows Mobile Workshop开发培训邀请函-西安站
  • 【Leetcode】101. 对称二叉树
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • Android组件 - 收藏集 - 掘金
  • isset在php5.6-和php7.0+的一些差异
  • learning koa2.x
  • MySQL-事务管理(基础)
  • Python学习之路16-使用API
  • 分布式事物理论与实践
  • 记一次删除Git记录中的大文件的过程
  • 聚簇索引和非聚簇索引
  • 实战|智能家居行业移动应用性能分析
  • 听说你叫Java(二)–Servlet请求
  • 突破自己的技术思维
  • 微服务框架lagom
  • 用简单代码看卷积组块发展
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​水经微图Web1.5.0版即将上线
  • #14vue3生成表单并跳转到外部地址的方式
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (function(){})()的分步解析
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (二)fiber的基本认识
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (一)Dubbo快速入门、介绍、使用
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)【Hibernate总结系列】使用举例
  • (转)Android学习笔记 --- android任务栈和启动模式
  • .net 简单实现MD5
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .Net的DataSet直接与SQL2005交互
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思
  • @require_PUTNameError: name ‘require_PUT‘ is not defined 解决方法
  • @Transactional类内部访问失效原因详解
  • @开发者,一文搞懂什么是 C# 计时器!
  • [AutoSar]BSW_Memory_Stack_004 创建一个简单NV block并调试
  • [C进阶] 数据在内存中的存储——浮点型篇
  • [EULAR文摘] 脊柱放射学持续进展是否显著影响关节功能
  • [git]git命令如何取消先前的配置