Как разобрать имя страницы по URL? - PullRequest
2 голосов
/ 09 февраля 2011

У меня есть URL, и я хочу получить из него окончательное имя страницы.Например, если мой URL-адрес равен http://www.mysite.com/mypage.cfm, я хочу получить значение mypage.cfm.Я попробовал поискать в Google, чтобы найти, есть ли какие-нибудь встроенные функции холодного синтеза, которые могут помочь мне достигнуть этого, но я не смог найти их.Итак, вначале я реализовал своего рода функцию «EndWith» (которая, кажется, недоступна и в 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 добавлена ​​строка запроса, это не сработает.Например, если URL-адрес http://www.mysite.com/mypage.cfm?param=whatever, оператор if будет иметь значение false.

Вероятно, я могу безопасно выполнить то, что пытаюсь сделать, проверив, содержит ли URL имя страницы, используя FindNoCase ... однако, это не кажется таким интуитивным или правильным.Каков наилучший способ вырезать имя страницы из URL в Coldfusion?

Ответы [ 3 ]

7 голосов
/ 09 февраля 2011

Нет встроенных функций как таковых, но функции списка должны делать:

<cfset pageName = listFirst(listLast(CGI.HTTP_Referer, '/'), '?')>
2 голосов
/ 09 февраля 2011

Если вы хотите текущее имя страницы из URL, попробуйте это:

 ListLast(CGI.SCRIPT_NAME, "/")

Получит полный путь после имени домена (включая начальный слеш), а затем вернет последний элемент из списка, используя / в качестве разделителя.

1 голос
/ 09 февраля 2011

На CFlib есть UDF, который делает это: http://cflib.org/udf/GetFileFromURL

...