在ASP編程的過程中,獲取當前操作的文件的文件名,是一個非常常用的動作,ASP好像沒有自己內置函數,所以這個操作我們需要自己編函數來完成。今天一個老朋友問我怎麼做,我愣了一下,還在想有沒有內置函數,實在沒想起來,不知道是真的沒有還是我不知道。呵呵~不管了,最後我還是自己寫了一個小函數來完成的,不過不是我的原創,忘了在哪兒看到的方法,一直記在心裏。
介紹一下InstrRev函數
InstrRev函數:從字符串的最後一個字符搜索起,向前面逐個搜索前面字符串,返回字符在字符串當中的第幾位。
舉例來說明其應用:
- <%
- Dim strTXT,pos
- strTXT=www.baidu.com
- pos=instrRev(strTXT,".")
- Response.Write pos
- %>
InstrRev函數搜索的起始是倒序,倒着搜索到com前的那個“.”。返回這個點在字符串中的位置,從0開始計數(類似數組),這個點爲第12位,所以返回的結果將是11。
通過此原理,我們不光可以取得ASP頁面的文件名,還可以獲取域名後綴名等信息,應用還是比較廣泛的。
下面這幾句代碼就是實現獲取當前文件名(放到ASP頁面裏,就能打印出當前文件名):
- Dim strURL,intPos,intStrLen,strFileName
- strURL = Request.Servervariables("url")
- intPos = InstrRev(strURL,"/")
- intStrLen = len(strURL)
- strFileName = Right(strURL,intStrLen-intPos)
- Response.Write strFileName
如果希望函數來獲取,調用如下getFileName()函數即可實現:
- Function getFileName()
- Dim strURL,intPos,intStrLen,strFileName
- strURL = Request.Servervariables("url")
- intPos = InstrRev(strURL,"/")
- intStrLen = len(strURL)
- strFileName = Right(strURL,intStrLen-intPos)
- getFileName = strFileName
- End Function