Using these two functions, you can decode parameters into an array of strings that you can later parse. These two functions handle parameter characters such as spaces which had to be "escaped" to be passed as parameters.
Function unescape( thing$ ) As String
' From Hugh Pyle@NIP ' Treat thing$ as a string which came from a Web URL; ' un-escape it, ie: "+" becomes space, and %HH become individual characters. ' Dim a$ Dim bit$ Dim j% Const hx$ = "ABCDEFabcdef1234567890" For j=1 To Len( thing$ ) bit$ = Mid$( thing, j, 1 ) If bit$="+" Then bit$ = " " Elseif bit$="%" Then If ( Instr( hx$, Mid$( thing, j+1, 1 ) )>0 And Instr( hx$, Mid$( thing, j+2, 1 ) )>0 ) Then bit$ = Chr$( Val( "&H" & Mid$( thing, j+1, 2 ) ) ) j = j + 2 End If End If a$ = a$ + bit$ Next unescape = a End Function
Function URLGetParamArray( url$, param$ ) As Variant ' From Hugh Pyle@NIP ' Find as many occurrences of "¶m=" as appear in the URL, and return the value(s) as an array. ' Unescape the values while we're doing it. Dim n%, m%, c% Dim p As Variant c = 0 Redim p( c ) As String n = Instr( 1, url$, "&" + param$ + "=", 5 ) While n>0 Redim Preserve p(c) As String m = Instr( n+1, url$+"&", "&") p(c) = unescape( Mid$( url$, n+ Len(param$) + 2, m - n - Len(param$) - 2) ) n = Instr( m, url$, "&" + param$ + "=", 5 ) c = c + 1 Wend URLGetParamArray = p End Function