_InetParseUrl

  • Zerteilt eine Url in seine Bestandteile.
    Falls euch ein besser RegExp Pattern einfällt einfach antworten.

    Spoiler anzeigen
    [autoit]

    ; #FUNCTION# ;===============================================================================
    ;
    ; Name...........: _InetParseUrl
    ; Description ...: Returns the Url splitted in his parts
    ; Syntax.........: __InetParseUrl($sUrl)
    ; Parameters ....: $sUrl - A valid url like
    ; 'http://subdomain.test-test.museum:8080/sbaiudsof/sdfsdfg-dgs/test.php?test=test&test2=test2#haha'
    ; Return values .: Success - Array
    ; Failure - Returns 0 and Sets @Error
    ; See StringRegExp
    ; Author ........: Tom Schuster
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........;
    ; Example .......; No
    ;
    ; ;==========================================================================================

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _InetParseUrl ( $sUrl )

    [/autoit] [autoit][/autoit] [autoit]

    $avSplittedUrl = StringRegExp ( $sURL, '([a-zA-Z]+):\/\/([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+([a-zA-Z]{2,9})(:\d{1,4})?(\/.*\/)?([^?#]*)?(\?[^#]*)?(#.*)?',1)

    [/autoit] [autoit][/autoit] [autoit]

    if @error Then
    Return SetError ( 1, 0, 0)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $sScheme = $avSplittedUrl[0]
    $SHost = StringTrimRight ($avSplittedUrl[1], 1 )
    $sDomain = $avSplittedUrl[2]
    $sPort = StringTrimLeft ( $avSplittedUrl[3], 1 )
    $sPath = StringTrimRight ( $avSplittedUrl[4], 1)
    $sFile = $avSplittedUrl[5]
    $sQuery = StringTrimLeft ( $avSplittedUrl[6], 1)
    $sFragment = StringTrimLeft ( $avSplittedUrl[7], 1)

    [/autoit] [autoit][/autoit] [autoit]

    dim $asReturnArray[8] = [$sScheme,$sHost,$sDomain,$sPort,$sPath,$sFile,$sQuery,$sFragment]

    [/autoit] [autoit][/autoit] [autoit]

    return $asReturnArray

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit]