2011-09-22 56 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