से दूसरा सेगमेंट प्राप्त करें बिना किसी स्लैश के यूआरएल में दूसरा सेगमेंट कैसे प्राप्त करें? उदाहरण के लिए मैं कैसे मूल्य जहां "पहली" खड़ा प्राप्त करने के लिए इसयूआरएल
http://foobar/first/second
की तरह एक URL`s है?
से दूसरा सेगमेंट प्राप्त करें बिना किसी स्लैश के यूआरएल में दूसरा सेगमेंट कैसे प्राप्त करें? उदाहरण के लिए मैं कैसे मूल्य जहां "पहली" खड़ा प्राप्त करने के लिए इसयूआरएल
http://foobar/first/second
की तरह एक URL`s है?
उपयोग 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'
+1 प्रश्न नहीं पढ़ा, हालांकि मैं $ _SERVER सरणी को संशोधित करने के खिलाफ सलाह दूंगा। – igorw
$segments = explode('/', trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/'));
यहाँ मेरी अंतिम खंड हथियाने का घना रास्ता, 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
हो जाने के बाद, आप इसे प्रतिबिंबित कर सकते हैं या इसे किसी अन्य रूप में उपयोग कर सकते हैं या अंतिम सेगमेंट के मूल्य के आधार पर जो भी चाहें उसे करने के लिए स्विच स्टेटमेंट कर सकते हैं।
अपने उदाहरण लेते हैं 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 पाने के लिए पहले
shure के लिए इस डुप्लीकेट, यहां एक नज़र डालें http://php.net/manual/en/function.parse-url.php –
क्या आप सुनिश्चित हैं कि आपके पास पूरा यूआरएल है, न केवल uri '/ first/second' का अनुरोध करें? आपको यह यूआरएल कहां मिलती है? –
@poelinca आपने –