2014-11-05 6 views
0

검색 후 많은 수의 검색 후 this이 가장 가까이 있습니다. 나는 http 후 URL의 두 번째 부분을 얻기 위해 {$smarty.server.REQUEST_URI} 을 사용하고있다. 당연히 많은 text1/text2/text3로 끝납니다. 이제 마지막 슬래시 뒤에있는 텍스트의 마지막 문자열을 추출한 후입니다.URL에 마지막 슬래시 뒤에 텍스트를 가져 오는 멋진 strpos 및 substr

필자의 이해에서 strpos를 사용하여 마지막 전달 슬레이브의 위치를 ​​얻고, 이상적으로 끝에서 시작하여 처음부터 오른쪽에서 왼쪽으로 시작한 이후 실제로 마지막 슬래시를 그만 두어야합니다. substr을 사용하여 그 strpos 이후의 내용을 얻으십시오.

+0

가능한 복제본 [마지막// 후 모든 것을 수집하는 정규 표현식 (/http://stackoverflow.com/questions/1150559/regular-expression-to-collect-everything-after-the-last) –

+0

그냥 생각해보십시오. : smarty를 사용하여이 작업을 수행 하시겠습니까? 그것은 계산할 템플릿의 작업이어야하는 것처럼 보이지 않습니다. – fejese

+0

내 친구 Amal, 귀하가 게시 한 링크는 PHP 사용을 말합니다. 똑똑한 PHP의 위에 내장되어 있지만 그것은 여전히 ​​연구하고있어 예약 된 변수의 자체 제한된 목록이 있습니다. –

답변

1

(당신이 Smarty2를 사용하는 경우) 당신이이 방법을 수행 할 수 있습니다

{assign var="dirs" value="/"|explode:$smarty.server.REQUEST_URI} 
{math equation ="x-y" x=$dirs|@count y=1 assign="last"} 
{$dirs[$last]} 

이 방법 :

{assign var="dirs" value="/"|explode:$smarty.server.REQUEST_URI} 
{$dirs[$dirs|@count-1]} 

것은 당신이 멋지 3

+0

와우는 도전적이었습니다. 똑똑하고 방정식을 활용하고 아이디어를 얻지 못했기 때문입니다. 방정식이 그것을 어떻게 달성했는지 공부하고 있습니다. 고마워, 내 코딩 일기에서 나중에 참고로 그것을 지적했다;) –

0

템플릿을 사용하는 경우입니다하지 그러한 처리를위한 적절한 장소. PHP에서 요청 문자열을 구문 분석하고 표시해야하는 값을 템플릿에 할당합니다. 템플릿 시스템은 프리젠 테이션 (코드에서 완료된 데이터 처리) (템플릿에서 수행 된 HTML 및 내용)과 로직을 분리하기 위해 고안되었습니다.