2012-11-24 4 views
1

을 얻기 위해 PHP를 사용하여 여기 내 URL입니다 : 나는 도시 이름을 얻고 그것을 활용할 수 URL 문자열

$url = $_SERVER['REQUEST_URI']; 
$check = end(explode('/local/',$url)); 
$check = strtoupper($check); 
echo $check; 

을 사용하고

http://www.mywebsite.com/local/cityname-free-services 

. 이 에코 나는이 무엇입니까 그러나 :

CITYNAME-FREE-SERVICES 

때 내가 에코하고자하는 모든이입니다 :

CITYNAME 

내가 그냥 도시 이름을 얻을 수있는 코드를 변경해야합니까?

도시 이름 중 일부에는 대시가 포함되어 있으며 에코하면 빈 칸으로 바뀐 도시명이 필요합니다. 그것을 위해 무엇을 추가해야합니까? 감사!

답변

1

당신은 다시 결과를 폭발 할 -와 문자열과 첫 번째 요소를 유지,

$url = $_SERVER['REQUEST_URI']; 
$check = end(explode('/local/',$url)); 
$check = current(explode('-', strtoupper($check))); 
echo $check; 

이 방법의 라인을 따라 뭔가, 마지막 부분을 변경하는 경우, 당신은 여전히 ​​당신의 CITYNAME 유효한 것입니다.

좀 더 설명, explode (문서 here) 배열 요소 문자열을 중단하며, 그것이 - 통과하는 3 개 요소 배열을 생성한다이 경우 그래서, 첫번째 파라미터를 사용하여 분해한다 CITYNAME, FREESERVICES. current (문서 here)은 배열의 현재 위치를 취하여이 값을 반환합니다. 기본적으로 현재 위치는 첫 번째 요소에 있습니다. 배열의 개별 요소를 인덱싱 할 수도 있으므로 CITYNAME 및 및 [2]을 사용하면 FREESERVICES이 표시됩니다.

편집 : 도시 이름에 대한 대시 부분을 보지 못했습니다. 이렇게하면 URL에 제거 할 대시가 포함되어있어 문제가 좀 복잡해집니다. "-FREE-SERVICES"가 상수 인이고 항상 제거하려는 부분 인 경우 cale_b가 제안한 작업을 수행하는 것이 좋습니다. "free-services"""으로 바꿉니다. 그래서 나는 그의 대답 +1이다.

편집 2 : 어떤 이유는 내 대답은 당신이 제안 cale_b 것과 유사한 일을 수행해야합니다대시 이름을, 주웠다!

+0

+1은'current()'를 사용합니다. 나는 array_shift (array_values ​​())와 함께 갔다. –

+0

그는 몇몇 도시 이름에 하이픈이 들어 있다고 언급했다.그 상황에서 깨지 않을 것입니까? –

+0

사실, 나는 그 부분을 보지 못했습니다. 지적 해 주셔서 감사합니다. – emartel

2

여러 가지 방법 중 하나입니다. 여기에 누군가가 아마 당신에게 더 나은 일을 할 몇 가지 정규 표현식을 표시되지만,이 뜻은 공백으로 "무료 서비스"뿐만 아니라 대체 대시를 제거합니다

$url = $_SERVER['REQUEST_URI']; 
$check = end(explode('/local/',$url)); 
$check = strtoupper(str_ireplace("free-services", "", $check)); 
echo str_replace("-", " ", $check); 
0
$url = 'http://www.mywebsite.com/local/cityname-free-services'; 
$check = end(explode('/local/',$url)); 
$check = strtoupper($check); 
echo $check; // prints CITYNAME-FREE-SERVICES 
echo '<br>'; 
$first_element = strtoupper(str_ireplace(array("-free-services","-"),array(""," "),$check)); 
echo $first_element; // prints CITYNAME 
+0

그는 일부 도시 이름에 하이픈이 들어 있다고 언급했습니다. 그 상황에서 깨지 않을 것입니까? –

+0

예. 이러한 수정 사항은 매번 제공됩니다. –

0
$url = $_SERVER['REQUEST_URI']; 
$check = end(explode('/local/',$url)); 
$check = strtoupper($check); 
$check = explode("-", $check); 
echo $check[0]; 
+0

그는 일부 도시 이름에 하이픈이 있다고 언급합니다. 그 상황에서 깨지 않을 것입니까? –