开发各种项目中经常遇到截取html字符串问题。 比如博客文章列表页面截取一部分正文、文章正文翻页截取等。

一般情况下先用PHP的 strip_tags 函数去掉所有html标签,再去掉空格等,然后再用substr或者自己实现的cn_substr函数来实现截取。因为如果不先去掉html标签,直接截取出来的字符串就会有没有闭合的标签出现,有时甚至会截取在标签上面比如

进天遇到一个内容翻页截取问题: 正文是用富文本编辑器写入的,编辑器上有个分页按钮,点击之后就往当前光标位置插入一个蓝色的


横线。然后php直接存入数据库。显示的时候,用 explode 函数根据这个


标记来分成一个数组,然后根据当前页码来显示某个片段。 但是有个严重的问题,比如富文本编辑器写入:

content of page 1


page 2 content

如果用explode函数分开后,第一页的内容就是

content of page 1

第二页的内容是:

page 2 content

这样就产生了没有闭合的标签,直接显示到页面上面就会破坏页面布局。。。

想了很久,也找了网上很多 closetag的函数。但是发现都真对第一页那种没有闭合的标签的闭合。对于第二种没有开头的标签就没办法了。

后来灵机一动,想了一个办法,利用浏览器自己的html解释引擎来帮助补全有问题的html片段。具体做法如下:

var div = document.createElement('div');

div.innerHTML = <?php echo json_encode("

这里是被截取的html片段");?>;

document.write(div.innerHTML);

原理就是先把html片段写入到一个空的div里面,然后再从这个div里面读取出来。别看写入和读取的属性都是innerHTML,写入的内容和得到的内容是不一样的噢。如果写入不完整的html片段,浏览器会自动补全修正。读取出来的时候就已经是完整的html dom 片段了。

下面是一个测试器:

fdasfdasfdsafas

html前台截取/以后的字段,截取html字符串之后补全标签 (closetag) 的新方法相关推荐

  1. java html 字符串截取字符串长度_Java截取带html标签的字符串,再把标签补全(保证页面显示效果)...

    一般是用在字符串中有html标签的截取. 如: 后台发布用了在线编辑器, 前台显示内容要截取的情况. import Java.util.ArrayList; import java.util.List ...

  2. html前台截取/以后的字段,javascript如何截取字符串后几位?

    javascript截取字符串的方法有substring(start,stop).substr(start,length).slice(start,end),通过设置其中参数就可以截取字符串后几位. ...

  3. Mysql在sql中截取时间类型字段的年月日和时间-DATE_FORMAT() 函数

    Mysql在sql中截取时间类型字段的年月日和时间 DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据. 下面的脚本使用 DATE_FORMAT() 函数来显示不同的格式.我们使用 N ...

  4. html实现字段截取,实现espcms系统cuthtml字符截取

    昨天无忧主机小编有给大家介绍过怎么截取espcms建站系统里面的字符内容,但是后台有使用无忧PHP虚拟主机的用户反映cutstr标签无法截取字符串,所以今天无忧主机小编再来给大家介绍另一种字符截取的方 ...

  5. mysql获取数组前两数据类型,sql获取数组指定元素、仅取数字、仅取字母以及字段截取大全、...

    截取如json格式的数组 需求:获取字符数组1,2,3的第2个元素 方法:通过自定义函数来实现 /* 获取字符串数组某个元素 */ if exists (select 1 from sysobject ...

  6. html字段截取前几位,javascript怎么截取字符串前几位?

    截取字符串是编程中最常见的操作之一, 熟练的掌握对字符串的处理是衡量是否入门的一个标准. JavaScript 这门语言内置了非常强大的字符串处理工具. javascript截取字符串的方法如下: 一 ...

  7. Python中字符串的截取,列表的截取

    字符串的截取 Python中的字符串用单引号 ' 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符. 字符串的截取的语法格式如下: 变量[头下标:尾下标] 索引值以 0 为开始值,-1 ...

  8. jq 截取指定字符前_Python中字符串的切片

    切片方法适用于字符串,列表,元组 切片使用索引值来限定范围,从一个大的字符串中切出小的字符串. 列表和元组都是有序的集合,都能够通过索引值获取到对应的数据 字典是一个无序的集合,是使用键值对保存数据 ...

  9. linux下截取安卓手机屏幕,截取屏幕截图

    屏幕截图是捕获计算机屏幕上显示内容的图像. 在您尝试向支持人员说明情况,或想在博客中添加您在计算机屏幕上看到的内容时,屏幕截图便会派上用场. 无论您使用何种操作系统,只需几步就可以截取屏幕截图. Wi ...

最新文章

  1. GAN在信息检索领域的应用
  2. leetcode算法题--排序链表★
  3. 拓扑排序(完整案列及C语言完整代码实现)
  4. My way on Linux - 知识梳理计划
  5. Spring如何解决循环依赖问题
  6. 2020 年终总结:变化 积累
  7. 网站压力测试软件(Apache JMeter)2.13 官方版 Error: Unable to access jarfile ApacheJMeter.jar
  8. html字符串替换src,替换html字符串中img标签src的值.
  9. Consumer配置
  10. 等响度曲线_等响曲线是如何绘制的?响度级
  11. oracle日期加一天的函数,关于oracle日期函数的介绍和使用
  12. PS去除图片白底制作微信表情包
  13. linux虚拟文件系统(二)-ext4文件系统结构
  14. 服务器运行cad慢,CAD绘图如何提高效率!CAD运行用加速技巧图文教程
  15. 2014年度江西省科学技术奖授奖项目名单
  16. 小黄鸡 php,小黄鸡simsimi接口
  17. 过原点回归的两条性质的理解
  18. 1946年第一台计算机在哪个国家面试,面试问题 计算机
  19. kswapd线程的前世今生
  20. 努力工作,却永不升职,是种怎样的体验?

热门文章

  1. java性能保障技术_狙击P7!阿里大佬亲授“Java性能调优技术宝典”,太完整了!...
  2. Linux课2021
  3. 使用Oracle创建图书馆数据库(book reader lib loan表)
  4. 服务器连接超时不响应怎么回事,勇者斗恶龙x服务器没有响应连接超时解决方法...
  5. mysql统计不及格科目_SQL语句 统计各个学生的不及格科目数量及不及格率 ,2条语句...
  6. UnicodeEncodeError: ‘locale‘ codec can‘t encode character ‘\u5e74‘ in position 2: Illegal byte seque
  7. 常用浏览器内核驱动下载地址
  8. php 归并排序,详解PHP归并排序的实现
  9. OpenOffce在Centos7安装和使用
  10. Python测试框架pytest(03)setup和teardown