GET 파라메타 쿼리문자열(QueryString) 컨트롤 : ASP
728x90
반응형
Request 객체를 사용하여 get으로 받은 파라메터 쿼리문자열을 컨트롤하는 함수이다.
ASP Request.ServerVariables("QUERY_STRING") 객체사용.
Source
<%@LANGUAGE="VBSCRIPT"%> <% Option Explicit %> <% '// programmed by 최석균 '// http://www.cyworld.com/syaku '// http://syaku.tistory.com Public Function GetParam(params) Dim query : query = Request.ServerVariables("QUERY_STRING") Dim Dic : Set Dic = Server.CreateObject("Scripting.Dictionary") Dim Reg : Set Reg = New RegExp Reg.Global = True Reg.Pattern = "^\?" query = Reg.Replace(query,"") Reg.Pattern = "^(.*)=(.*)$" ' 기존 파라메터 담기 If Me.xIsNull(query) = False Then Dim obj_key,obj_name,obj_value For Each obj_key In Split(query,"&") If Reg.Test(obj_key) = True Then obj_name = Reg.Replace(obj_key,"$1") obj_value = Reg.Replace(obj_key,"$2") Dic.Add obj_name,obj_value End If Next End If ' 임의의 파라메터 담기 If Me.xIsNull(params) = False Then Dim new_key,new_name,new_value For Each new_key In Split(params,"&") If Reg.Test(new_key) = True Then new_name = Reg.Replace(new_key,"$1") new_value = Reg.Replace(new_key,"$2") If Dic.Exists(new_name) = True Then If Me.xIsNull(new_value) = True Then Dic.Remove(new_name) Else Dic.Key(new_name) = new_value End If Else Dic.Add new_name,new_value End If End If Next End If Dim params_ext : params_ext = "" Dim acc_key,acc_name,acc_value For Each acc_key in Dic.Keys acc_name = acc_key acc_value = Dic.item(acc_name) If Me.xIsNull(acc_value) = False Then params_ext = params_ext & acc_name & "=" & acc_value & "&" End If Next If Me.xIsNull(params_ext) = False Then Reg.Pattern = "&$" GetParam = Reg.Replace(params_ext,"") Else GetParam = "" End If End Function %>
Example Source
<% ' 현 파라메터 정보 ' chn=syaku&mode=blog&search=&page=1 ' 현 파라메터 출력 Response.Write FuncCls.GetParam("") & "<br />" ' 결과 : chn=syaku&mode=blog&search=&page=1 ' chn=secon 변경하기 Response.Write FuncCls.GetParam("chn=secon") & "<br />" ' 결과 : chn=secon&mode=blog&page=1 : &search= 값이 없기 때문에 자동 제거 됨. ' page 파라메터 삭제하기 Response.Write FuncCls.GetParam("page=") & "<br />" ' 결과 : chn=secon&mode=blog ' page=2 를 추가하고, mode=home 변경하며, chn 파라메터는 삭제하기. Response.Write FuncCls.GetParam("chn=&mode=home&page=2") & "<br />" ' 결과 : mode=home&page=2 %>
written by Seok Kyun. Choi. 최석균.
http://www.cyworld.com/syaku
http://syaku.tistory.com
728x90
반응형
'개발노트 > ASP' 카테고리의 다른 글
자바스크립트를 ASP에서 호출하기 : ASP (0) | 2009.03.18 |
---|---|
원하는 패턴의 날짜 구하기 : ASP (0) | 2009.03.18 |
다차원 배열(Array) 과 컬렉션 (Scripting.Dictionary) 사용 예제 : ASP (0) | 2009.03.18 |
UTF-8 언어셋 설정과 MySQL5 사용 : ASP (0) | 2009.03.17 |