我有一个网址,我希望从中获取最终的网页名称。例如,如果我的网址为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中的网址中删除页面名称的最佳方法是什么?
答案 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