top
Loading...
論壇、聊天室中濾除HTML標記
由于論壇、聊天室都是開放的系統,每一個有權限的用戶都可以在其中暢所欲言。但是往往有一些別有用心的用戶就會利用它們的開放性在其中搗亂,比如在聊天時或在論壇中發文章時,嵌入HTML標記,使系統混亂。因此,想編寫一個健壯的論壇或聊天室就必須把用戶發送來的HTML標記濾去。

讓我們來分析一下如何濾去這些標記。我們都知道,HTML標記是由兩個尖括號“<”、“>”和其中的一些語句組成,如等,只要把我們接收到的HTML語句中的“<”、“>”相應換成<和>,在發回就可以了。現在思路明了多了吧。現在讓我們看看這個過程在Java程序中如何實現,為了節省篇幅,我只寫了過濾的函數。

Public String htmlFilter(String inputString);

If(inputString.length()= =0 || inputString= = null)

{

return inputString;

}

///如果接收到的字符串為空值或者長度為零,則返回該字符串,

//因為空字符串是不可能*有<和>的

StringBuffer str=new StringBuffer(inputString.length()+6);

//創建空的緩沖區

char c=’’;

for(int i=0 ;i< inputString.length();i ++)

{

c= inputString.charAt(i);//逐個掃描輸入的字符串,取下inputString中第i +1個字符

if (c= =’<’)

{

str.append(“<”);

}//如果c為‘<’,則在str緩沖中加入”<”代替‘<’

else if (c = =’>’)

{

str.append(“<”);

}//如果c為‘>’,則在str緩沖中加入”>”代替‘>’

else

{

str.append (c); //如果既無’<’ 也無’>’則直接把c中的值寫入緩沖

}

}

return str.toString(); //返回濾過HTML標記的字符串

}

你看,這樣的難題就被一個簡簡單單的Java函數解決了。你只需把它加到你的論壇或聊天使程序中就行了。

作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗