0

こんにちは、以下に示すように、コードを使用して紹介 URL を取得しています。

sRef = encode(Request.ServerVariables("HTTP_REFERER"))

上記のコードは、次の URL を取得しています

その URL から、ADV と LOC のみを取得したい (これはフォームの送信時に実行されるスクリプトであるため、Request.querystring は機能しません)

簡単に言うと、参照 URL を使用して、adv パラメーターと loc パラメーターの値を取得したいと考えています。

どうすればこれを行うことができますか?

以下は私が現在使用しているコードですが、問題があります。loc の後のパラメーターも表示されます。ダイナミックなものが欲しい。また、adv と loc の値を長くすることもできます。

    <%
sRef = Request.ServerVariables("HTTP_REFERER")

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))

%>
4

3 に答える 3

0

? の後のすべてを部分文字列にします。

「&」で分割

配列を反復して "adv=" と "loc=" を見つけます

以下はコードです:

Dim fieldcontent 
fieldcontent = "http://www.rzammit.com/pages/linux-form.asp?adv=101&loc=349&websync=233344-4555665-454&ptu=454545"
fieldcontent = mid(fieldcontent,instr(fieldcontent,"?")+1)
Dim params
 params = Split(fieldcontent,"&")
for i = 0 to ubound(params) + 1
    if instr(params(i),"adv=")>0 then
        advvalue = mid(params(i),len("adv=")+1)
    end if
    if instr(params(i),"loc=")>0 then
       locvalue = mid(params(i),5)
    end if
next
于 2012-04-06T19:33:22.460 に答える
0

ここから始めましょう。正規表現を使用してすべての URL 変数を取得します。split() 関数を使用して、「=」記号でそれらを分割し、単純な配列を取得するか、それらを辞書などに入れることができます。

    Dim fieldcontent : fieldcontent = "http://www.rzammit.com/pages/linux-form.asp?adv=101&loc=349&websync=233344-4555665-454&ptu=454545"
    Dim regEx, Matches, Item
    Set regEx = New RegExp
        regEx.IgnoreCase = True
        regEx.Global = True
        regEx.MultiLine = False

        regEx.Pattern = "(\?|&)([a-zA-Z0-9]+)=([^&])"

        Set Matches  = regEx.Execute(fieldcontent)
        For Each Item in Matches
            response.write(Item.Value & "<br/>")
        Next

    Set regEx = Nothing 
于 2012-04-05T14:47:11.367 に答える
0

次の汎用関数を使用できます。

function getQueryStringValueFromUrl(url, key)
    dim queryString, queryArray, i, value

    ' check if a querystring is present
    if not inStr(url, "?") > 0 then
        getQueryStringValueFromUrl = empty
    end if

    ' extract the querystring part from the url
    queryString = mid(url, inStr(url, "?") + 1)

    ' split the querystring into key/value pairs
    queryArray = split(queryString, "&")

    ' see if the key is present in the pairs
    for i = 0 to uBound(queryArray)
        if inStr(queryArray(i), key) = 1 then
            value = mid(queryArray(i), len(key) + 2)
        end if
    next

    ' return the value or empty if not found
    getQueryStringValueFromUrl = value
end function

あなたの場合:

dim url
url = "http://www.rzammit.com/pages/linux-form.asp?adv=101&loc=349&websync=233344-4555665-454&ptu=454545"

response.write "ADV = " & getQueryStringValueFromUrl(url, "adv") & "<br />"
response.write "LOC = " & getQueryStringValueFromUrl(url, "loc")
于 2012-04-07T12:27:44.730 に答える