2011-02-09 4 views
2

У меня есть URL-адрес, и я хочу получить окончательное название страницы. Например, если мой url http://www.mysite.com/mypage.cfm, то я хочу получить значение mypage.cfm. Я попробовал поиск в Google, если у вас есть встроенные функции coldfusion, которые могут помочь мне в этом, но я не смог их найти. Итак, что я сделал в первом было реализовать своего рода функцию «EndsWith» (который, кажется, не будет доступна в ColdFusion либо) - что-то вроде этого:Как проанализировать имя страницы по URL-адресу?

<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? не

ответ

7

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

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

Nice один, также вы можете использовать 'GetFileFromPath' для внутреннего шага, он обрабатывает URL-адреса тоже. – Sergii

+0

@Sergii: интересный никогда не использовал 'GetFileFromPath()' для этой цели. Я предполагаю, что он лишит строку запроса? – orangepips

+0

приятно! благодаря! (и еще 2 символа) – froadie

2

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

ListLast(CGI.SCRIPT_NAME, "/") 

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

Смежные вопросы