2013-08-24 3 views
2

마지막 슬래시 "/"다음에 나오는 URL에서 벗어나고 싶습니다. 페이지 URL은 매우 다양합니다. 예 :마지막 슬래시 뒤의 텍스트, 내 실수는 무엇입니까?

http://mydomain.com/colors/productname.html (결과는 'productname'입니다.) OK!

http://mydomain.com/colors/size/zip/shipment/ (결과는 "배송일입니다") OK!

http://mydomain.com/colors/

또는

는 널 (결과는 "널 (null)"입니다)!

마지막 예제를 제외하고 지금까지는 잘 작동합니다. 일단 도메인 이름 다음에 슬래시 "/"를 붙이면 결과가 없습니다.

내 실수는 무엇입니까?

미리 감사드립니다.

$url = "variable"  
if (strpos($url,'.h') !== false) { 
$url = preg_replace('/\.h.*/', '/', $url);} 
$url = rtrim($url, "/"); 
$str = substr(strrchr($url, '/'), 1); 
$str = str_replace('-',' ',$str); 
$keys = str_replace('/ /', '%20', $str); 
$metric = urlencode($keys); 

답변

2

PHP는 이미 수행하는 기능을 가지고있다이 그 basenamebasename를 사용을 중지하고 무엇

$url = "http://mydomain.com/colors/"; 
echo basename($url); 

//outputs 
colors 

$url = "http://mydomain.com/colors/productname.html"; 
echo basename($url); 

//outputs 
productname.html 
+0

감사합니다, 도와 PATHINFO_FILENAME 플래그 pathinfo 사용할 수 있습니다! –

2

라고?

<?php 
    $url = "http://mydomain.com/colors/"; 
    $url = basename($url); //outputs "colors" 
    echo $url; 
?> 

아니면 출력에서 ​​".html을"싶지 않는 경우에, 당신은

<?php 
    $url = "http://mydomain.com/colors.html"; 
    $url = pathinfo($url, PATHINFO_FILENAME); //also outputs "colors" 
    echo $url; 
?> 
관련 문제