'================================================ ==============
'Function name: definiteurl
'For use: Convert relative addresses to absolute addresses
'Parameter: primitiveurl ------ relative address to be converted
'Parameter: consulturl ------ current webpage address
'================================================ ==============
Function definiteurl (byval primitiveurl, byval consulturl)
Dim Contemp, pritemp, PI, CI, priarray, conarray
If primitiveurl = "" Or consulturl = "" Or primitiveurl = "$ false $" or consulturl = "$ false $" then
Definiteurl = "$ false $"
Exit Function
End if
If left (lcase (consulturl), 7) <> "http: //" then
Consulturl = "http: //" & consulturl
End if
Consulturl = Replace (consulturl ,"\","/")
Consulturl = Replace (consulturl ,"://",":\\")
Primitiveurl = Replace (primitiveurl ,"\","/")
If right (consulturl, 1) <> "/" then
If instr (consulturl, "/")> 0 then
If instr (right (consulturl, Len (consulturl)-limit Rev (consulturl, "/"), ".")> 0 then
Else
Consulturl = consulturl &"/"
End if
Else
Consulturl = consulturl &"/"
End if
End if
Conarray = Split (consulturl ,"/")
If left (lcase (primitiveurl), 7) = "http: //" then
Definiteurl = Replace (primitiveurl ,"://",":\\")
Elseif left (primitiveurl, 1) = "/" then
Definiteurl = conarray (0) & primitiveurl
Elseif left (primitiveurl, 2) = "./" then
Primitiveurl = right (primitiveurl, Len (primitiveurl)-2)
If right (consulturl, 1) = "/" then
Definiteurl = consulturl & primitiveurl
Else
Definiteurl = left (consulturl, inclurev (consulturl, "/") & primitiveurl
End if
Elseif left (primitiveurl, 3) = "../" then
Do While left (primitiveurl, 3) = "../"
Primitiveurl = right (primitiveurl, Len (primitiveurl)-3)
Pi = PI + 1
Loop
For CI = 0 to (ubound (conarray)-1-Pi)
If definiteurl <> "" then
Definiteurl = definiteurl & "/" & conarray (CI)
Else
Definiteurl = conarray (CI)
End if
Next
Definiteurl = definiteurl & "/" & primitiveurl
Else
If instr (primitiveurl, "/")> 0 then
Priarray = Split (primitiveurl ,"/")
If instr (priarray (0), ".")> 0 then
If right (primitiveurl, 1) = "/" then
Definiteurl = "http: \" & primitiveurl
Else
If instr (priarray (ubound (priarray)-1), ".")> 0 then
Definiteurl = "http: \" & primitiveurl
Else
Definiteurl = "http: \" & primitiveurl &"/"
End if
End if
Else
If right (consulturl, 1) = "/" then
Definiteurl = consulturl & primitiveurl
Else
Definiteurl = left (consulturl, inclurev (consulturl, "/") & primitiveurl
End if
End if
Else
If instr (primitiveurl, ".")> 0 then
If right (consulturl, 1) = "/" then
If right (lcase (primitiveurl), 3) = ". CN "or right (lcase (primitiveurl), 3) =" com "or right (lcase (primitiveurl), 3) =" Net "or right (lcase (primitiveurl), 3) = "org" then
Definiteurl = "http: \" & primitiveurl &"/"
Else
Definiteurl = consulturl & primitiveurl
End if
Else
If right (lcase (primitiveurl), 3) = ". CN "or right (lcase (primitiveurl), 3) =" com "or right (lcase (primitiveurl), 3) =" Net "or right (lcase (primitiveurl), 3) = "org" then
Definiteurl = "http: \" & primitiveurl &"/"
Else
Definiteurl = left (consulturl, limit Rev (consulturl, "/") & "/" & primitiveurl
End if
End if
Else
If right (consulturl, 1) = "/" then
Definiteurl = consulturl & primitiveurl &"/"
Else
Definiteurl = left (consulturl, inclurev (consulturl, "/") & "/" & primitiveurl &"/"
End if
End if
End if
End if
If left (definiteurl, 1) = "/" then
Definiteurl = right (definiteurl, Len (definiteurl)-1)
End if
If definiteurl <> "" then
Definiteurl = Replace (definiteurl ,"//","/")
Definiteurl = Replace (definiteurl ,":\\","://")
Else
Definiteurl = "$ false $"
End if
End Function