2011-03-28 25 views
21

İkinci segment, eğik çizgi olmadan URL'de nasıl alınır? Mesela ben nasıl "ilk" duruyor değeri almak için buurl'den ikinci segmenti al

http://foobar/first/second 

gibi url `s` s var?

+0

, http://php.net/manual/en/function.parse-url.php –

+0

'a bir göz atın, sadece uri '/ first/second' istemediğinden tam URL'niz olduğundan emin misiniz? Bu URL'yi nereden alıyorsunuz? –

+0

@poelinca –

cevap

40

Kullanım parse_url URL'den yolunu almak ve daha sonra segmentlere bölmek explode kullanmak:

$uri_path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); 
$uri_segments = explode('/', $uri_path); 

echo $uri_segments[0]; // for www.example.com/user/account you will get 'user' 
İşte
+6

+1 sorusunu okumadı, ancak $ _SERVER dizisini değiştirmeyi öneriyorum. – igorw

8
$segments = explode('/', trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/')); 
1

son segmenti kapma benim uzun bir yoludur, Gumbo cevabı esinlenilmiş : istersen

// finds the last URL segment 
$urlArray = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); 
$segments = explode('/', $urlArray); 
$numSegments = count($segments); 
$currentSegment = $segments[$numSegments - 1]; 

sen iki satır halinde aşağı kaynatın, ancak bu yolla daha da yorum yapmadan, sen neyin peşinde oldukça açık hale getirir.

$currentSegment ürününe sahip olduğunuzda, yineleyebilir veya son bölümün değerine göre istediğiniz şeyi yapmak için bir if/else veya anahtar deyiminde kullanabilirsiniz.

2

http://domain.com/first/second

$segments = explode('/', trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/')); 
$numSegments = count($segments); 
$currentSegment = $segments[$numSegments - 1]; 

echo 'Current Segment: ' , $currentSegment; 

Güncel Segmentinin neden misiniz senin örneğin çekmek için: İkinci

Sen numSegments değiştirebilir -2 almak için bu yineleniyor shure ilk