Url Parser
Posted by HellRaz0r
Tuesday, July 17, 2007
Description: Snippet to parse urls, please report bugs.


;$purl(<link>,[Num])[.prop])          
;<> means Required,[] means Optional.
;[proto:\/\/][user[:pass]@]host[:port][\/path]

;Expression made by Saturn@Quakenet, i'll make my own soon :)
alias purl {
  var %exp = /^(?:([a-z.+-]+)://|())(?:([^@:]+)(?::(.*?)|())@|()())([a-z0-9.-]+)(?::(\d+)|())(/.*)?$/i
  if ($regex($1,%exp)) {
    if ($prop == proto) return $regml(1)
    elseif ($prop == user) return $regml(2)
    elseif ($prop == pass) return $regml(3)
    elseif ($prop == host) return $regml(4)
    elseif ($prop == port) return $iif($regml(5) != $null,$ifmatch,$urlport(%proto))
    elseif ($prop == path) return $iif($regml(6) != $null,$ifmatch,/)
    return $true
  }
  return $false
}
alias -l urlport {
  return $iif($findtok(http ftp telnet nntp https gopher,http,32),$gettok(80 21 23 119 443 70,$ifmatch,32),0)
}
Submit a comment
Oops! You need to login or register before you can post a comment!

ebaum's world