2013-07-09 130 views
1

我有这个html代码。php preg_replace html标签问题

<P class=MsoNormal style='MARGIN: 0cm 0cm 10pt'><STRONG>text</P> 
    <P class=MsoNormal style='MARGIN: 0cm 0cm 10pt'></P> 
    <UL> 
    <LI> 
    <DIV class=MsoNormal style='MARGIN: 0cm 0cm 10pt'>text</DIV></LI> 
    <LI> 
    <DIV class=MsoNormal style='MARGIN: 0cm 0cm 10pt'>text</DIV></LI> 
    <LI> 
    <DIV class=MsoNormal style='MARGIN: 0cm 0cm 10pt'>text</DIV></LI> 
    <LI> 
    <DIV class=MsoNormal style='MARGIN: 0cm 0cm 10pt'>text</DIV></LI> 
    <LI> 
    <DIV class=MsoNormal style='MARGIN: 0cm 0cm 10pt'>text</DIV></LI> 
    <LI> 
    <DIV class=MsoNormal style='MARGIN: 0cm 0cm 10pt'>text</DIV></LI></UL> 

我想删除风格标签和它的礼节以及类标签及其礼仪所以出来会是:

<P><STRONG>text</P> 
    <P></P> 
    <UL> 
    <LI> 
    <DIV>text</DIV></LI> 
    <LI> 
    <DIV>text</DIV></LI> 
    <LI> 
    <DIV>text</DIV></LI> 
    <LI> 
    <DIV>text</DIV></LI> 
    <LI> 
    <DIV>text</DIV></LI> 
    <LI> 
    <DIV>text</DIV></LI></UL> 

这是我已经试过,但它不工作:

$html = preg_replace('/(]+) (style|class)=("|\').*?("|\'(>|\s))/img', '$1', $$html); 
+0

一)它以什么方式不起作用? b)你不能用正则表达式解析HTML http://stackoverflow.com/a/1732454/477127 – GordonM

+0

这是它给出的错误:PHP错误[8]:未定义的变量:返回HTML –

回答

1

试试这个:

$html = preg_replace("/(\s(class|style)[^>]+)/", "", $html); 
+0

刚刚尝试它给它同样的错误PHP错误[8]:未定义的变量: –

+0

你错误是由“$$ html”引起的!只需使用$ html而不是 – zekus

+0

,谢谢zekus在将$$ html改为$ html之后工作。我如何删除它是否存在标签? –