Anasayfa Teknoloji Dünyası Web Tasarım HTML Taglarının Filtre Edilmesi
HTML Taglarının Filtre Edilmesi PDF Yazdır e-Posta
Yusuf YUMLU tarafından yazıldı.   
HTML TAGLARININ FİLTRE EDİLMESİ

Yusuf YUMLU

Çeşitli web sitelerinde kullanılan ve gün geçtikçe daha çok yaygınlaşan ASPTear, MSXML2.ServerXMLHTTP, MSXML2. FreeThreadedDOMDocument, Microsoft. XMLHTTP gibi Bileşenler ile  farklı sitelerden metinler okutularak, kendi sitenizde yayınlıyorsanız eminim yaşadığınız en büyük problemlerden biride gelen veri içeriğindeki html taglarıdır.

Aşağıdaki fonksiyonumuz sayesinde sitemizi rahatsız eden, belkide tasarımını dağıtan tag'ların filtrelenerek nasıl temizleneceğini öğreneceğiz. 

Fonksiyonumuz <> tagları arasında bulunan ve TAGLIST değerini içeren bölümleri komple filtreler, bu filtre sayesinde elimize tamamı temizlenmiş salt veri (metin) ulaşır, aşağıdaki TAGLIST'imize arzu edilirse yeni eklemeler yapabilir yada zaten halı hazırda kullanılan Tag'lara ihtiyaç duyuluyor ise filtrelenmesi engellenebilir.

Örnek Yeni Tag Ekleme : <html> Tag'ını Filtre etmek istiyorsak TAGLIST bölümüne ilavaten "html;" eklememiz yeterli oluyor.

Örnek Tag Filtresini Önlemek : <br> Tag'ını Filtre etmek istemiyorsak TAGLIST bölümünde bulunan "br;" değerini silmeniz yeterli olacaktır.


<%

Function RemoveHTML( strText )
Dim TAGLIST
TAGLIST = ";!--;!DOCTYPE;A;ACRONYM;ADDRESS;APPLET;AREA;B;BASE;" &_
"BGSOUND;BIG;BLOCKQUOTE;BODY;BR;BUTTON;CAPTION;CEN TER;CITE;CODE;" &_
"COL;COLGROUP;COMMENT;DD;DEL;DFN;DIR;DIV;DL;DT;EM; EMBED;FIELDSET;"
&_
"FONT;FORM;FRAME;FRAMESET;HEAD;H1;H2;H3;H4;H5;H6;H R;HTML;I;IFRAME;IMG;"
&_
"INPUT;INS;ISINDEX;KBD;LABEL;LAYER;LAGEND;LI;LINK; LISTING;MAP;MARQUEE;" &_
"META;NOBR;NOFRAMES;NOSCRIPT;OBJECT;OL;OPTION ;P;PARAM;PLAINTEXT;"
&_
"PRE;Q;S;SAMP;SCRIPT;SELECT;SMALL;SPAN;STRIKE;STRO NG;STYLE;SUB;SUP;" &_
"TABLE;TBODY;TD;TEXTAREA;TFOOT;TH;THEAD;TITLE;TR;TT;U;UL;VAR;WBR;XMP;

Const BLOCKTAGLIST = ";APPLET;EMBED;FRAMESET;HEAD;NOFRAMES;” &_
”NOSCRIPT;OBJ ECT;SCRIPT;STYLE;"

Dim nPos1
Dim nPos2
Dim nPos3
Dim strResult
Dim strTagName
Dim bRemove
Dim bSearchForBlock

nPos1 = InStr(strText, "<")
Do While nPos1 > 0
nPos2 = InStr(nPos1 + 1, strText, ">")
If nPos2 > 0 Then
strTagName = Mid(strText, nPos1 + 1, nPos2 - nPos1 - 1)
strTagName = Replace(Replace(strTagName, vbCr, " "), vbLf, " ")

nPos3 = InStr(strTagName, " ")
If nPos3 > 0 Then
strTagName = Left(strTagName, nPos3 - 1)
End If

If Left(strTagName, 1) = "/" Then
strTagName = Mid(strTagName, 2)
bSearchForBlock = False
Else
bSearchForBlock = True
End If

If InStr(1, TAGLIST, ";" & strTagName & ";", vbTextCompare) > 0 Then
bRemove = True
If bSearchForBlock Then
If InStr(1, BLOCKTAGLIST, ";" & strTagName & ";", vbTextCompare) > 0 Then
nPos2 = Len(strText)
nPos3 = InStr(nPos1 + 1, strText, "</" & strTagName, vbTextCompare)
If nPos3 > 0 Then
nPos3 = InStr(nPos3 + 1, strText, ">")
End If

If nPos3 > 0 Then
nPos2 = nPos3
End If
End If
End If
Else

bRemove = False
End If

If bRemove Then
strResult = strResult & Left(strText, nPos1 - 1)
strText = Mid(strText, nPos2 + 1)
Else
strResult = strResult & Left(strText, nPos1)
strText = Mid(strText, nPos1 + 1)
End If
Else

strResult = strResult & strText
strText
= ""
End If

nPos1 = InStr(strText, "<")
Loop
strResult = strResult & strText

RemoveHTML = strResult
End Function
%>

Fonksiyonu aşağıdaki örnekler halinde kullanabiliriz.

<%
=RemoveHTML(Rs("metin"))%>
<%
=RemoveHTML(veri)%>
<%
Response.write(RemoveHTML(rs("metin"))%>

Fonksiyonu daha iyi anlayabilmeniz için DW renklerine çevrilmiştir.

Selam ve dua ile..

 

 

Yorum ekle

DİKKAT !..
1- Yorumlarınızı sonradan düzenleyebilmek istiyorsanız üye girişi yapın.
2- Lütfen yorumunuzun, yazının konusu ile alakalı olmasına dikkat edin.
3- Uygunsuz içerikli ve reklam amaçlı yorumlar silinecektir.


Site içeriğinden alıntı yapacaksanız, lütfen www.darusselam.com şeklinde kaynak belirtiniz.

Kimler Sitede

Şu anda 10 konuk çevrimiçi
Üyeler : 215
İçerik : 182
Web Bağlantıları : 1
İçerik Tıklama Görünümü : 87727