2011-01-31 56 views
0

我正在使用亚马逊网络服务获取各种商品的产品描述。问题是亚马逊的内容包含标记,有时会破坏我网页的布局(例如未封闭的DIV等)。消毒内容:从亚马逊的内容中删除标记

我想清理从亚马逊获得的内容。我的解决办法是做到以下几点(我的初步名单至今):

  • 删除不必要的标记,如divspan等,同时保持标签,如pulol
  • 全部删除从所有的标签属性(例如好像有一些标签的style属性)
  • 删除多余的空格(如多个空格,回车换行,制表符等)
  • 等等

在我试图构建我的解决方案之前,我想知道是否有人有更好的主意(或者已有的解决方案)。谢谢。

+0

是否需要通过正则表达式来完成?它们可能是解析HTML的最糟糕的工具。 – 2011-01-31 12:28:07

回答

1

无论是最好的主意与否:

删除多余的空格:

preg_replace('/\s+/', ' ', trim($v))

删除HTML元素属性:

preg_replace('/<([^\s>]+) [^>]+>/', '<$1>', $v)

删除特定元素:

preg_replace('/<\/?(div|span)[^>]*>/', '', $v)