Asp classic ASP从引用url抓取参数

Asp classic ASP从引用url抓取参数,asp-classic,vbscript,Asp Classic,Vbscript,您好,我正在使用代码获取转介URL,您可以在下面看到: sRef = encode(Request.ServerVariables("HTTP_REFERER")) 此代码正在获取以下URL: 我想从这个url获取ADV和LOC(Request.querystring不起作用) 有什么可以帮我的吗?所有这些都发生在脚本中。将sRef视为字符串,并使用Mid获取值。下面的代码应该是你到达目的地的起点 <% sRef="http://www.rzammit.com/pages/linux-f

您好,我正在使用代码获取转介URL,您可以在下面看到:

sRef = encode(Request.ServerVariables("HTTP_REFERER"))
此代码正在获取以下URL:

我想从这个url获取ADV和LOC(Request.querystring不起作用)


有什么可以帮我的吗?所有这些都发生在脚本中。

将sRef视为字符串,并使用Mid获取值。下面的代码应该是你到达目的地的起点

<%
sRef="http://www.rzammit.com/pages/linux-form.asp?adv=101&loc=349"

a=instr(sRef, "adv")+4
b=instr(sRef, "&loc")

response.write(mid(sRef ,a,b-a))
response.write("<br>")
response.write(mid(sRef ,b+5))

%>

将sRef视为字符串,并使用Mid获取值。下面的代码应该是你到达目的地的起点

<%
sRef="http://www.rzammit.com/pages/linux-form.asp?adv=101&loc=349"

a=instr(sRef, "adv")+4
b=instr(sRef, "&loc")

response.write(mid(sRef ,a,b-a))
response.write("<br>")
response.write(mid(sRef ,b+5))

%>

我真不敢相信我做了这件事。ASP经典是我的第一个网络编程爱好,所以我不得不:)





在页面中使用此函数,您可以通过将变量名称和URL字符串传递给GetVarValue来查询任何变量


(注:如果这个答案有效,接受这个答案,它会给我的StackOverflow回购带来奇迹:)

我真不敢相信我这么做了。ASP经典是我的第一个网络编程爱好,所以我不得不:)





在页面中使用此函数,您可以通过将变量名称和URL字符串传递给GetVarValue来查询任何变量


(注:如果这个答案有效,接受这个答案,它将对我的StackOverflow Repo:)产生奇迹。

使用Regexp和字典从字符串中提取结构化信息:

>> Dim s : s = "http://www.rzammit.com/pages/linux-form.asp?adv=101&loc=349"
>> Dim d : Set d = getKVP(s)
>> WScript.Echo "loc =", d("loc")
>> WScript.Echo "adv =", d("adv")
>> Function getKVP(s)
>>   Dim r, d, m
>>   set r = New RegExp
>>   r.Global = True
>>   r.Pattern = "(\w+)=(\w+)"
>>   set d = CreateObject("Scripting.Dictionary")
>>   For Each m In r.Execute(s)
>>       d(m.SubMatches(0)) = m.SubMatches(1)
>>   Next
>>   Set getKVP = d
>> End Function
>>
loc = 349
adv = 101

您可能需要修改过于简单的模式,但这种方法比Instr方法扩展得更好。

使用Regexp和字典从字符串中提取结构化信息:

>> Dim s : s = "http://www.rzammit.com/pages/linux-form.asp?adv=101&loc=349"
>> Dim d : Set d = getKVP(s)
>> WScript.Echo "loc =", d("loc")
>> WScript.Echo "adv =", d("adv")
>> Function getKVP(s)
>>   Dim r, d, m
>>   set r = New RegExp
>>   r.Global = True
>>   r.Pattern = "(\w+)=(\w+)"
>>   set d = CreateObject("Scripting.Dictionary")
>>   For Each m In r.Execute(s)
>>       d(m.SubMatches(0)) = m.SubMatches(1)
>>   Next
>>   Set getKVP = d
>> End Function
>>
loc = 349
adv = 101

您可能需要修改过于简单的模式,但是这种方法比Instr方法扩展得更好。

我在发布之前测试了它,现在又测试了一次,它在这里工作。在您的实例中,它给出了什么错误?我正在使用以下代码(我正在为iAdv和iLoc分配返回值)sRef=encode(Request.ServerVariables(“HTTP_REFERER”))a=instr(sRef,“adv”)+4b=instr(sRef,“&loc”)iAdv=mid(sRef,a,b-a)iLoc=mid(sRef,b+5)好的,下面是我找到的sRef=Request.ServerVariables(“HTTP_REFERER”)工作而不是sRef=encode(Request.ServerVariables(“HTTP_REFERER”))嗨:)我有一个小问题。我有一个新链接:。当我返回loc值时,loc后面的参数也会显示出来。我想要一个动态的东西,它只获取adv和loc值,不管url中有什么参数。我如何才能做到这一点,请?我测试之前,张贴和再次现在-它在这里工作。在您的实例中,它给出了什么错误?我正在使用以下代码(我正在为iAdv和iLoc分配返回值)sRef=encode(Request.ServerVariables(“HTTP_REFERER”))a=instr(sRef,“adv”)+4b=instr(sRef,“&loc”)iAdv=mid(sRef,a,b-a)iLoc=mid(sRef,b+5)好的,下面是我找到的sRef=Request.ServerVariables(“HTTP_REFERER”)工作而不是sRef=encode(Request.ServerVariables(“HTTP_REFERER”))嗨:)我有一个小问题。我有一个新链接:。当我返回loc值时,loc后面的参数也会显示出来。我想要一个动态的东西,它只获取adv和loc值,不管url中有什么参数。我怎样才能做到这一点呢?继续保持下去男人:)你太棒了。请给我你的电子邮件或skype好吗?azzassfa@gmail.com-我希望这里不禁止分享个人信息:$Keep it up man:)你太棒了。请给我你的电子邮件或skype好吗?azzassfa@gmail.com-我希望这里不禁止共享个人信息:$