ASP与PHP去除HTML标签及脚本代码的实现方法

作者:资源驿站时间:2026-10-25 11:03:38浏览:492

本文提供了在ASP和PHP环境中清除HTML字符串中script、style标签及注释的代码实现。ASP部分利用RegExp对象逐层匹配并移除脚本、样式及所有HTML标记;PHP部分通过定义搜索与替换数组,利用preg_replace函数批量处理脚本、样式、HTML标记、注释及空白字符,并处理HTML实体转换,适用于网页内容清洗场景。

ASP去除HTML标签及脚本代码的实现

ASP语言实现的函数逻辑


示例代码展示:

 
<% 
Function RemoveHTML(str)
Dim objRegExp, Match,strHTML
if isnull(str) then
str=""
end if
strHTML=str
strHTML=replace(replace(replace(strHTML,vblf,""),vbcr,""),vbcrlf,"")
Set objRegExp = New Regexp
objRegExp.IgnoreCase = True
objRegExp.Global = True
objRegExp.Pattern = "<script[^>]*?>.*?</script>"
strHTML = objRegExp.Replace(strHTML,"")
objRegExp.Pattern = "<style[^>]*?>.*?</style>"
strHTML = objRegExp.Replace(strHTML,"")
objRegExp.Pattern = "<.+?>"
strHTML = objRegExp.Replace(strHTML,"")
Set objRegExp = Nothing
RemoveHTML=strHTML
End Function
%> 

PHP正则表达式处理HTML内容

PHP语言对应的实现代码


示例代码展示:

 
<?php
$search = array ("'<script[^>]*?>.*?</script>'si", // 移除 javascript
"'<style[^>]*?>.*?</style>'si", // 移除 css
"'<[/!]*?[^<>]*?>'si", // 移除 HTML 标签
"'<!--[/!]*?[^<>]*?>'si", // 移除 注释标记
"'([rn])[s]+'", // 移除空白字符
"'&(quot|#34);'i", // 转换 HTML 实体
"'&(amp|#38);'i",
"'&(lt|#60);'i",
"'&(gt|#62);'i",
"'&(nbsp|#160);'i",
"'&(iexcl|#161);'i",
"'&(cent|#162);'i",
"'&(pound|#163);'i",
"'&(copy|#169);'i",
"'&#(d+);'e"); // 作为 PHP 代码执行
$replace = array ("",
"", 
"", 
"", 
"\1",
"\"", 
"&", 
"<", 
">", 
" ", 
chr(161),
chr(162),
chr(163),
chr(169),
"chr(\1)");
//$document为需要处理字符串,如果来源为文件可以$document = file_get_contents('http://www.sina.com.cn');
$out = preg_replace($search, $replace, $document);
echo $out;
?> 

存为get.php即可。


作者最新文章