Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parsing 如何从URL解析页面名称?_Parsing_Url_Coldfusion - Fatal编程技术网

Parsing 如何从URL解析页面名称?

Parsing 如何从URL解析页面名称?,parsing,url,coldfusion,Parsing,Url,Coldfusion,我有一个URL,我想从中得到最终的页面名。例如,如果我的url是http://www.mysite.com/mypage.cfm,然后我想获取值mypage.cfm。我试着在谷歌上搜索是否有任何内置的coldfusion函数可以帮助我实现这一点,但我没有找到任何函数。所以,我一开始做的是实现一种“endsWith”函数(在coldfusion中似乎也不可用)——类似这样: <cfif right(cgi.http_referer, len("mypage.cfm")) EQ "mypage

我有一个URL,我想从中得到最终的页面名。例如,如果我的url是
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" ...

... 如果页面是“mypage.cfm”,请执行我想执行的任何操作。。。
这很有效。。。问题是,如果url中附加了查询字符串,那么这将不起作用。例如,如果url是
http://www.mysite.com/mypage.cfm?param=whatever
,if语句的计算结果将为false


通过使用
FindNoCase
检查url是否包含页面名称,我可能可以安全地完成我正在尝试做的事情。。。然而,这似乎并不那么直观或正确。在coldfusion中,从url中删除页面名称的最佳方法是什么?

本身没有内置函数,但列表函数应该执行以下操作:

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

如果要从URL中获取当前页面名称,请尝试以下操作:

 ListLast(CGI.SCRIPT_NAME, "/")

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

CFlib上有一个UDF,可以执行以下操作:

不错的一个,你也可以使用
GetFileFromPath
作为内部步骤,它也处理URL。@Sergii:Interest从未使用过
GetFileFromPath()
。我假设它会剥离查询字符串?这会很酷,但不会。这就是为什么我提到带斜杠的内部步骤的意思是
ListLast
。@Sergii:好的,现在我明白了。我本来可以自己测试的,但是今天很懒。