2011-03-28 7 views
21

से दूसरा सेगमेंट प्राप्त करें बिना किसी स्लैश के यूआरएल में दूसरा सेगमेंट कैसे प्राप्त करें? उदाहरण के लिए मैं कैसे मूल्य जहां "पहली" खड़ा प्राप्त करने के लिए इसयूआरएल

http://foobar/first/second 

की तरह एक URL`s है?

+0

shure के लिए इस डुप्लीकेट, यहां एक नज़र डालें http://php.net/manual/en/function.parse-url.php –

+0

क्या आप सुनिश्चित हैं कि आपके पास पूरा यूआरएल है, न केवल uri '/ first/second' का अनुरोध करें? आपको यह यूआरएल कहां मिलती है? –

+0

@poelinca आपने –

उत्तर

40

उपयोग parse_url URL से पथ पाने के लिए और उसके बाद explode का उपयोग वह अपने खंडों में विभाजित करने के लिए:

$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' 
+6

+1 प्रश्न नहीं पढ़ा, हालांकि मैं $ _SERVER सरणी को संशोधित करने के खिलाफ सलाह दूंगा। – igorw

1

यहाँ मेरी अंतिम खंड हथियाने का घना रास्ता, Gumbo के जवाब से प्रेरित है :

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

आपको लगता है कि नीचे उबाल कर सकता है दो पंक्तियों में, यदि आप चाहें, लेकिन इस तरह से, यह बहुत स्पष्ट है कि तुम क्या करने वाले हैं बनाता भी टिप्पणी के बिना।

एक बार आपके पास $currentSegment हो जाने के बाद, आप इसे प्रतिबिंबित कर सकते हैं या इसे किसी अन्य रूप में उपयोग कर सकते हैं या अंतिम सेगमेंट के मूल्य के आधार पर जो भी चाहें उसे करने के लिए स्विच स्टेटमेंट कर सकते हैं।

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; 

वर्तमान सेगमेंट में परिणाम होगा: दूसरी

आप numSegments बदल सकते हैं -2 पाने के लिए पहले