線上 ASP進階之文章線上管理更新--對HTM代碼的轉化篇
作者:沙灘小子
前面為大家介紹了文章的線上添加以及儲存,但如果僅僅是這樣還不夠的,因為有很多的文章本身帶有的HTM代碼必須完整的顯示出來,而不是顯示出它的效果來,這也就是說必須轉化HTM代碼以使它能具體顯示出它的代碼,比如:<a href="">你好</a>你並不想在頁面上顯示出它是一個串連,而是顯示其代碼,這就象FRONTPAGE裡面的直接在編輯頁面寫代碼,只不過FRONTPAGE提供了轉化的功能而已。
在ASP中可以通過轉化特定的HTM代碼,以使它能以完整的形式顯示,比如HTM的通用格式<>等,還有就是把ASP中顯示HTM代碼的格式要轉化為HTM代碼,比如在ASP裡chr(13)表示斷行符號,那麼就要將它轉化為<br>,因為在添加文章內容的時候所有的換行和空格在返回到savearticle.asp以後都是以ASP的代碼錶示的,所以這個時候就要將它轉化為HTM代碼,只有這樣才能使文章正確的顯示出來。
以下就是本系統對這些代碼的轉化程式,在裡面我都詳細的標明了註解
建立一檔案articlechar.inc,其具體內容為:
<%
"Function程式是建立在子程式過程中的成組處理功能上的,是一個獨立的程式用來接受自變數以執行一系列的代碼語句,以及把處理好的代碼語句的結直接返回給使用者代碼
function htmlencode2(str)
dim result
dim l
if isNULL(str) then
htmlencode2=""
exit function
end if
l=len(str)
result=""
dim i
for i = 1 to l
"對返回的內容進行判定,並對其含有<,>,chr(13),chr(34),&,chr(32),chr(9)進行相應的轉化,如chr(13)變為<br>;也就是斷行符號的HTM代碼
select case mid(str,i,1)
case "<"
result=result+"<"
case ">"
result=result+">"
case chr(13)
result=result+"<br>"
case chr(34)
result=result+"""
case "&"
result=result+"&"
case chr(32)
'result=result+" "
if i+1<=l and i-1>0 then
if mid(str,i+1,1)=chr(32) or mid(str,i+1,1)=chr(9) or mid(str,i-1,1)=chr(32) or mid(str,i-1,1)=chr(9) then
result=result+" "
else
result=result+" "
end if
else
result=result+" "
end if
case chr(9)
result=result+" "
case else
result=result+mid(str,i,1)
end select
next
htmlencode2=result
end function
%>
在經過對文章返回資訊的處理後,文章就可以正常顯示了,所以下一節將介紹怎樣顯示文章,自動產生文章的HTM頁面。
轉載請註明出處http://asky.on.net.cn