如何从URL解析页面名称?

时间:2011-02-09 08:31:34

标签: parsing url coldfusion

我有一个网址,我希望从中获取最终的网页名称。例如,如果我的网址为http://www.mysite.com/mypage.cfm,那么我想获得值mypage.cfm。我试着谷歌搜索是否有任何内置的coldfusion函数可以帮助我实现这一目标,但我找不到任何。所以,我最初做的是实现一种“endsWith”函数(在coldfusion中似乎也没有) - 就像这样:

<cfif right(cgi.http_referer, len("mypage.cfm")) EQ "mypage.cfm">
... do whatever I want to do if the page is "mypage.cfm" ...

这很好用......问题是如果有一个查询字符串附加到url,这将无法正常工作。例如,如果网址为http://www.mysite.com/mypage.cfm?param=whatever,则if语句将评估为false。

我可以通过使用FindNoCase检查网址是否包含页面名称来安全地完成我想要做的事情...但是,这似乎不那么直观或正确。从coldfusion中的网址中删除页面名称的最佳方法是什么?

3 个答案:

答案 0 :(得分:7)

本身没有内置函数,但列表函数应该:

<cfset pageName = listFirst(listLast(CGI.HTTP_Referer, '/'), '?')>

答案 1 :(得分:2)

如果您想要URL中的当前页面名称,请尝试以下方法:

 ListLast(CGI.SCRIPT_NAME, "/")

这将获得域名后面的完整路径(包括前导斜杠),然后使用/作为分隔符返回列表中的最后一项。

答案 2 :(得分:1)

CFlib上有一个UDF可以做到这一点: http://cflib.org/udf/GetFileFromURL