2011-01-31 60 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)