PHP函数可以匹配HTML注释模式并删除HTML代码

时间:2015-07-03 07:01:43

标签: php html regex

我的服务器上的文件很少,我只需要帮助,只要在我的HTML中识别HTML代码,PHP函数匹配并删除下面的代码块。

<!---- 728x90 Ad START ---->
    <iframe marginheight="" marginwidth="" src="728.html" height="728" width="90" frameborder="0" scrolling="no"></iframe>
<!---- END 728x90 Ad ---->

<!---- 160x600 Ad START ---->
    <iframe marginheight="" marginwidth="" src="160.html" height="160" width="600" frameborder="0" scrolling="no"></iframe>
<!---- END 160x600  Ad ---->


<!---- 300x250 Ad START ---->
    <iframe marginheight="" marginwidth="" src="300.html" height="300" width="150" frameborder="0" scrolling="no"></iframe>
<!---- END 300x250 Ad ---->

1 个答案:

答案 0 :(得分:2)

通常,使用正则表达式进行HTML解析是一种不好的做法。但是,由于您的广告评论具有相似的模式,我们可以使用正则表达式删除它们。

<?php
$text = '
<!---- 728x90 Ad START ---->
    <iframe marginheight="" marginwidth="" src="728.html" height="728" width="90" frameborder="0" scrolling="no"></iframe>
<!---- END 728x90 Ad ---->

HTML code here

<!---- 160x600 Ad START ---->
    <iframe marginheight="" marginwidth="" src="160.html" height="160" width="600" frameborder="0" scrolling="no"></iframe>
<!---- END 160x600  Ad ---->

HTML code 2 here

<!---- 300x250 Ad START ---->
    <iframe marginheight="" marginwidth="" src="300.html" height="300" width="150" frameborder="0" scrolling="no"></iframe>
<!---- END 300x250 Ad ---->
';

//s modifier ignores newlines
$text = preg_replace('/<!-.*?Ad START.*?Ad.*?->/s', '', $text);
print $text;

输出:

HTML code here

HTML code 2 here

正则表达式评论

<!-      | starts with "<!-"
.*?      | something
Ad START | text "Ad START"
.*?      | something
Ad       | text "Ad"
.*?      | something
->       | ends with "->"