解析HTML以修复微型图和字形问题

Dam*_*ien 20 php localization typography html-parsing

我对网络上的微型印刷问题很感兴趣.

我想要一个工具来修复:

  • 行情
    • "(“)打开报价(而不是")
    • "(”)结束报价(而不是")
  • 撇号
    • '(’)撇号(而不是')
  • 破折号和连字号
    • - (–或–)短划线,用于范围,例如"11月13日至15日"(而不是 - )
    • - (—或—)em dash,用于改变思想,例如"星球大战 - 每个人都知道 - 太棒了."(而不是 - ,或 - )
  • 省略
    • ...(…或…)水平省略号,用于表示遗漏或暂停(而不是......)
  • 更多\ o /

所有这些修复都取决于内容语言.在法国,例如,我们必须在每个组成的字形(前加insecable(非中断)的空间:,;,,?,!,...),而我们的报价是«这样».

这种工具有许多限制:

  • 它不能编辑受保护标签内的任何HTML(pre,code...)
  • 它必须快(用于CMS输出)
  • 它不能破坏HTML
  • 等等.

市场上已经有一些工具:

它们或多或少都基于SmartyPants,一个2005 lib,未经过测试,没有记录,手动解析HTML而不处理除英语之外的其他规则.一定不行.

所以我的问题是:

  • 你知道这样的任何像样的工具吗?
  • 我该怎么做?我已经有了使用DomCrawler的POC,但我不相信.在PHP中解析和编辑HTML的最佳方法是什么?

编辑2013年7月:我从我在这个问题上获得的测试和专业知识开发了JoliTypo.没有现有的lib正在做我想做的事情.

pre*_*mer 8

我有点朋友的肖恩经常为此目的建造一些东西.你可以在这里查看演示:http://files.seancoates.com/lexentity/他在这里写了博客:http://seancoates.com/blogs/lexentity,你可以在这里获取源代码:https:// github. COM/scoates/lexentity

它可能无法满足您的全部语言需求,但它是英语的开始.