VBScript http_build_query 関数

URL エンコードされたクエリ文字列を生成する


Function http_build_query(formdata , numeric_prefix , arg_separator )

    If Not isArray(formdata) and Not isObject(formdata) Then Exit Function

    Dim i,key
    Dim url
    Dim separator

    separator = "&"
    If len(arg_separator) > 0 then
        separator = arg_separator
    end if

    If isArray(formdata) Then
        For key = 0 to uBound(formdata)
            If isArray(formdata(key)) or isObject(formdata(key)) Then
                url = url & separator & http_build_query(formdata(key) , _
                                            numeric_prefix , arg_separator )
            else
                url = url & separator & _
                    key & "=" & Server.URLEncode(formdata(key))
            end if
        Next
    ElseIf isObject(formdata) Then

        For Each i In formdata
            if isArray(i) or isObject(i) then
                url = url & separator & http_build_query(i , numeric_prefix , arg_separator )

            elseif isArray(formdata(i)) or isObject(formdata(i)) Then

                If isArray( formdata(i) ) Then
                    For Each key In formdata(i)
                        If isObject(key) or isArray(key) Then
                            url = url & separator & http_build_query(key , numeric_prefix , arg_separator )
                        Else
                            url = url & separator & _
                                i & "=" & Server.URLEncode(key)
                        End If
                    Next
                Else
                    url = url & separator & http_build_query(formdata(i) , numeric_prefix , arg_separator )
                End If
            else
                if isArray( formdata ) and len(numeric_prefix) > 0 then
                        url = url & separator & _
                            numeric_prefix & i & "=" & Server.URLEncode(formdata(i))
                else
                    url = url & separator & _
                        i & "=" & Server.URLEncode(formdata(i))
                end if
            end if
        Next
    End If

    If len( url ) > 0 Then url = Mid(url,2)

    http_build_query = url

End Function

引数

formdata = array 配列もしくはオブジェクト。
numeric_prefix = string 配列の要素に対する数値インデックスの前にこれが追加されます。
arg_separator = string 区分のためのセパレータとして使用されます。

戻り値

URL エンコードされた文字列を返します。

処理

・与えられた連想配列 (もしくは添字配列) から URL エンコードされたクエリ文字列を生成します。

その他の PHP url 関数