parseUri: Split URLs in ColdFusion
Update: I've added a JavaScript implementation of the following UDF. See parseUri: Split URLs in JavaScript.
Here's a UDF I wrote recently which allows me to show off my regex skillz. parseUri()
splits any well-formed URI into its components (all are optional).
The core code is already very brief, but I could replace everything within the <cfloop>
with one line of code if I didn't have to account for bugs in the reFind()
function (tested in CF7). Note that all components are split with a single regex, using backreferences. My favorite part of this UDF is its robust support for splitting the directory path and filename (it supports directories with periods, and without a trailing backslash), which I haven't seen matched in other URI parsers.
Since the function returns a struct, you can do, e.g., parseUri(uri).anchor
, etc. Check it out:
See the demo and get the source code.
Comment by hua on 24 August 2007:
very cool! thanks for sharing this.
one scope issue: line 35 “Variables.uriParts.pos” should be “uriParts.pos”
Comment by Stacey on 17 November 2009:
Found the same issue as hua… one suggestion, could you split the host part into subdomain and domain too?
Comment by Paolo on 29 July 2010:
Simple, robust and powerful UDF! Exactly what I looking for!
Great work!
Comment by Joshua Gonzalez on 26 May 2011:
Thanks man!
Comment by Vjozryic on 3 September 2011:
Thanks funny site incest art toplisty atdn
Comment by Auogtbkj on 8 September 2011:
We went to university together lolita girls in thongs >:[[[
Comment by Hbqalcbg on 20 September 2011:
I live here Pthc Bbs Forum fyleul
Comment by Wagnvpep on 22 September 2011:
Could you tell me my balance, please? Nude Teen Models :-[[
Comment by Iklnycbi on 24 September 2011:
Could I order a new chequebook, please? Sarka Model Teen
%(
Comment by gordon on 6 July 2012:
the anchor value is available if you create on the server the variable you are parsing. The incoming url from a user’s submitted request will not include the anchor – the behavior of browsers is to not send it. Suppose you progammatically want to highlight the point on the page indicated by the anchor? If you are in control of creating the page having the link the user will click, include the variable in the url:
…&anchor=myAnchor#myAnchor
or alternately, if you have control of the response page, use javascript and have jQuery or onLoad() process the anchor:
(supposing http://a.com#asdf and asdf is both the anchor in the link and, on the response page, the id value of the element you want to highlight and you have jQuery)
<script type=”text/javascript” src=”/scripts/jquery-1.7.2.min.js”></script>
<script type=”text/javascript”>
$(document).ready(function(){
$(“#”+location.href.split(“#”)[1]).css(“background-color”,”yellow”);
})
</script>
with id:
<div id=”asdf”>hello world</div>
without id:
<div>goodbye world</div>
Comment by prestiti pensionat on 23 March 2017:
Where is the code?
Comment by prestiti inpdap on 23 March 2017:
Can you please share the code?