• Uncle Liu's Blog
  • 追忆曾经逝去的岁月,在此存放我容易丢失的记忆!
  • 首页
  • 碎语
  • 留言板
  • 登录
  • PHP实现html标签补全

    [PHP+MYSQL]
    post by Uncle Liu / 2010-6-15 19:47 Tuesday

    我们有时候需要截断html的内容来输出,但是由于截断的位置并不确定,导致阶段后的html内容中的很多标签都没有正常闭合而导致页面变形,如何解决这个问题呢?当然是使用强大的正则表达式来匹配那些没有闭合的标签了,代码如下:

    /**
     * close all open xhtml tags at the end of the string
     *
     * @param string $html
     * @return string
     * @author Milian Wolff <mail@milianw.de >
     */
    function closetags($html) {
      #put all opened tags into an array
      preg_match_all('#<([a-z]+)(?: .*)?(?<![/|/ ])>#iU', $html, $result);
      $openedtags = $result[1];
     
      #put all closed tags into an array
      preg_match_all('#</([a-z]+)>#iU', $html, $result);
      $closedtags = $result[1];
      $len_opened = count($openedtags);
      # all tags are closed
      if (count($closedtags) == $len_opened) {
        return $html;
      }
      $openedtags = array_reverse($openedtags);
      # close tags
      for ($i=0; $i < $len_opened; $i++) {
        if (!in_array($openedtags[$i], $closedtags)){
          $html .= '</'.$openedtags[$i].'>';
        } else {
          unset($closedtags[array_search($openedtags[$i], $closedtags)]);
        }
      }
      return $html;
    } 

    来自:思想之地

    « 0812 | phpwind的密码及cookie加密方式»

    引用地址:

    有以下朋友发表了自己的看法:

    Gravatar Coach Factory Store
    2011-12-29 16:08
    学习学习
    Gravatar 公司logo设计
    2011-12-23 12:13
    号啊
    Gravatar Coach Factory Outlet
    2011-12-12 15:14
    感谢分享哈。。
    Gravatar Jordan Retros
    2011-11-24 17:16
    这篇收藏,可以做简单的编辑器!
    Gravatar 呱呱社区
    2011-10-18 10:58
    有时间也要学习一下php
    Gravatar replica watches
    2011-08-22 14:30
    经典的代码,拿来当编辑
    Gravatar 深圳SEO
    2011-04-11 10:35
    这篇收藏,可以做简单的编辑器!
    Gravatar 天津464
    2010-12-21 13:45
    这篇也收藏了
    Gravatar Uncle Liu
    2010-12-13 14:52
    @ugg boots mini:不是高手,转载的
    Gravatar ugg boots mini
    2010-12-13 13:51
    不错的代码,学习了, 看来博主是个高手哦!
    Gravatar 唯品会
    2010-08-18 19:36
    PHP比ASP强大好多啊
    Gravatar 岁月无痕
    2010-08-18 19:35
    代码不错! 留下了
    Gravatar 狂热
    2010-08-10 02:13
    看来朋友是个高手哦!
    Gravatar 江南夜色
    2010-07-18 09:59
    江南夜色路过此地。有和贵站做链接的念头。不知道贵站可否。。江南夜色's_Blog www.hellomc.cn
    Gravatar 半只青蛙
    2010-07-15 14:08
    有多个相同标记时,处理怕是有问题吧?
    Gravatar 小子
    2010-07-12 21:45
    额,貌似在 思想之地 也看到了同样的文章啊
    Gravatar 隆鼻网
    2010-07-05 15:21
    不错的代码,学习了。
    Gravatar 西安seo
    2010-06-26 06:23
    不懂程序的飘过!
    Gravatar 维C生活网
    2010-06-25 20:31
    不错,学习了,顶一下!
    Gravatar 奇遇
    2010-06-20 10:48
    貌似有些标签不需要闭合?

    发表评论:

  • 搜索

  • 岁月如梭

  • 分类

    • 心情记事(40) 订阅该分类
    • 经典网文(30) 订阅该分类
    • PHP+MYSQL(40) 订阅该分类
    • Javascript(21) 订阅该分类
    • 电脑网络(33) 订阅该分类
    • emlog(7) 订阅该分类
    • Linux(2) 订阅该分类
  • 日历

  • 随机日志

    • iis 下加载php_curl的方法
    • phostshop不能调用字体的解决办法
    • js校验文本框中只能输入0~9的数字
    • php验证码
    • 给emlog增加lightbox效果
  • 链接

    • TangJun's blog
    • vb.vc个性域名
    • 点滴记忆
    • 奇遇——心情随笔
    • Sfan@Live
    • 乐小北
    • 游戏毁我半生
    • 铁观音茶叶
    • ═╬簡箪√嗳
    • KLLER's Blog
    • Web前端开发
    • 零度自由
    • PHP100中文站论坛
    • Api.im
    • emlog
  • 最新日志

    • 茶汤
    • 操蛋的一年终于过去了
    • 域名城第16届域名大赛 - “非6勿扰”双拼.com域名大赛
    • 永远的兄弟
    • 夜半孤寂茶当酒,一壶独饮到天明
  • soft

    • 分类信息
订阅Rss
Powered by emlog | Loekman 主题 | 沪ICP备09020591号