php preg_replace html内容

时间:2011-02-25 19:37:25

标签: regex preg-replace html-parsing

我需要删除这些html块之间的内容:

$var1 ="

    <html><head>
    <meta http-equiv='content-type' content='text/html; charset=ISO-8859-1'></head><body>
    <img alt='shopozilla' src='http://www.ssopte.com/images/2010/usdos-logo-seal.png' >

    <span style='font-family: Arial,Helvetica,sans-serif; color: rgb(93, 93, 93);
    font-size: 17px; font-weight: bold;'>shopozilla sent this message to
";

$var2 = "

    Section 222 of the sand sAct. Section 222(f) provides that the     records of the separtment of State and of diplomatic and consular  </font><br>
    </td></tr></tbody></table></td></tr></tbody></table></body></html> 

";

到目前为止,我试过

<pre>
$content =  preg_replace("/$var1(.*)$var2/m", "", $htmlContent);
</pre>

但是没有工作,所以我需要一个应该有效的模式/正则表达式。

2 个答案:

答案 0 :(得分:0)

尝试删除preg之外的图案。

$pattern = "/$var1(.*)$var22/m";   //adding /s might help with the /m
这样你可以回显$ pattern;并检查它是否有效。

答案 1 :(得分:0)

您的模式包含许多在正则表达式中具有特殊含义的字符,因此对于要搜索的内容感到困惑preg_replace。只需使用str_replace代替,因为你真的不需要正则表达式。有一段时间没有完成PHP,但请尝试:

$pos1 = stripos($htmlcontent, $var1);
$pos2 = strripos($htmlcontent, $var2);

$content = substr_replace($htmlcontent, "", $pos1, $pos2 + strlen($var2));

还有 one point that cannot be emphasized enough