2011-09-22 55 views
0

我一直在重組我的代碼,以便能夠更好地支持舊的IE瀏覽器。我已經把所有隻有HTML5腳本的東西放在IF語句中,並且一切正常。PHP用DIV代替HTML元素

我只需要做出最後一項更改。我收集了我的所有網站到使用ob_start() ...並希望知道最簡單的方法來替換所有html5元素,如articlediv。我打算使用simplehtmldom,但我沒有mb_character_encoding,所以它不起作用。爲了更容易,我刪除了所有註釋,並將所有代碼放在一行中,以期使用非常閃亮的REGULAR EXPRESSION。

+0

是必要的正則表達式,當你只需要純文本替換? – Einacio

+1

您是否考慮過使用[html5shiv](http://code.google.com/p/html5shiv/)? – mario

回答

1

您可以取代你<article<div</article></div>

這麼簡單不需要複雜的正則表達式

+1

除了他不得不更換'article'標籤以外。因此,一條正則表達式比20個單獨的str_replace調用更簡單(更不用說更快)。 – mario

+0

爲什麼20?只需要2個str_replace,一個用於打開標籤,另一個用於關閉 – Einacio

+0

馬里奧是對的。我只是指出文章爲例。我將不得不有16個不同的str_replace調用。 – TheNextBigThing

2

一些選項:

  • 一個簡單的替換,由Senad的建議
  • DOMDocument(不是最簡單的方法)
  • 或...您可以按照原樣保留HTML,並在客戶端使用Modernizr,以使舊版瀏覽器識別這些元素,以及其他一些HTML5/CSS3功能。
+0

+1爲推薦modernizr ...它真的是迫使老年人瀏覽器識別HTML5標籤的最簡單的方法 – ChrisR

+0

我使用的是http://html5shiv.googlecode.com/svn/trunk/html5.js但這並不能幫助我那麼多。它仍在哭泣,並在「隨機」地方發送我的元素 – TheNextBigThing

+0

我從來沒有使用過html5shiv,但modernizr爲我完美地工作(實際上我只是在一個網站上使用它,但它只是工作)。 – bfavaretto