--一、建立函數html
- create function [dbo].[clearhtml] (@maco varchar(8000))
-
- returns varchar(8000) as begin
-
- declare @i int
-
- while 1 = 1
-
- begin
-
- set @i=len(@maco)
-
- set @maco=replace(@maco, substring(@maco,charindex('<',@maco),
-
- charindex('>',@maco)-charindex('<',@maco)+1),space(0))
-
- if @i=len( @maco )
-
- break
-
- end
-
-
-
- set @maco=replace(@maco,' ','')
-
- set @maco=replace(@maco,' ','')
-
- set @maco=ltrim(rtrim(@maco))
-
- set @maco=replace(@maco,char(9),'')
-
- set @maco=replace(@maco,char(10),'')
-
- set @maco=replace(@maco,char(13),'')
-
-
-
- return (@maco)
-
- end
--二、測試示例 sql
- declare @mark varchar(8000)
-
- set @mark='<body><div id=u><a href=http://passport.baidu.com/?login&tpl=mn>登陸</a></div><center><img src=/upload/2011/3/2210597443.gif width=270 height=129 usemap="#mp" id=lg><br><br><br><br><table cellpadding=0 cellspacing=0 id=l><tr><td><div id=m><a onclick=s(this) href=http://news.baidu.com>新 聞</a><b>網 頁</b><a onclick=s(this) href=http://tieba.baidu.com>貼 吧</a><a onclick=s(this) href=http://zhidao.baidu.com>知 道</a><a onclick=s(this) href=http://mp3.baidu.com>MP3</a><a onclick=s(this) href=http://image.baidu.com>圖 片</a><a onclick=s(this) href=http://video.baidu.com>視 頻</a></div></td></tr></table>
-
- <table cellpadding=0 cellspacing=0 style="margin-left:15px"><tr valign=top><td style="height:62px;padding-left:92px" nowrap><div style="position:relative"><form name=f action=/s><input type=text name=wd id=kw size=42 maxlength=100> <input type=submit value=百度一下id=sb><div id=sug onselectstart="return false"></div><span id=hp><a href=/search/jiqiao.html>幫助</a><br><a href=/gaoji/advanced.html>高級</a></span></form></div></td></tr></table>
-
- </body>'
-
- select dbo.clearhtml (@mark)
--三、運行結果
/*
new
---------------------------------------
登陸新聞網頁貼吧知道MP3圖片視頻幫助高級
*/數據庫
/*
可是上面的函數還存在問題,若是內容中有「《》」或是「<<>>」這樣的標記,則不能達到咱們的要求。
*/ ide
--增強版 函數
- create function [dbo].[clearhtml_V2] (@maco varchar(8000))
-
- returns varchar(8000)
-
- as
-
- begin
-
- declare @randchar_one nvarchar(200)
-
- declare @randchar_two nvarchar(200)
-
- if(charindex('<<',@maco)>0)
-
- begin
-
- set @randchar_one='D4678B36-B958-4274-B81E-BBA636CFB427';
-
- set @randchar_two='49E374CC-9E1A-4850-897C-27074DE32E7F';
-
- set @maco=replace(@maco,'<<',@randchar_one)
-
- set @maco=replace(@maco,'>>',@randchar_two)
-
- end
-
- declare @i int
-
- while 1 = 1
-
- begin
-
- set @i=len(@maco)
-
- set @maco=replace(@maco, substring(@maco,charindex('<',@maco),
-
- charindex('>',@maco)-charindex('<',@maco)+1),space(0))
-
- if @i=len( @maco )
-
- break
-
- end
-
-
-
- set @maco=replace(@maco,' ','')
-
- set @maco=replace(@maco,' ','')
-
- set @maco=ltrim(rtrim(@maco))
-
- set @maco=replace(@maco,char(9),'')
-
- set @maco=replace(@maco,char(10),'')
-
- set @maco=replace(@maco,char(13),'')
-
- if(charindex(@randchar_one,@maco)>0)
-
- begin
-
- set @maco=replace(@maco,'D4678B36-B958-4274-B81E-BBA636CFB427','<<')
-
- set @maco=replace(@maco,'49E374CC-9E1A-4850-897C-27074DE32E7F','>>')
-
- end
-
- return (@maco)
-
- end
-
-
-
- select dbo.clearhtml_V2('<p>test</p><<西遊記>><a href="www.baidu.com" />')
--運行結果: /* test<<西遊記>>