$_SERVER['REQUEST_URI']
और $_GET['q']
(जो ड्रूपल में उपयोग किया जाता है) के बीच क्या अंतर है?
उत्तर
को देखते हुए इस उदाहरण यूआरएल:
http://www.example.com/some-dir/yourpage.php?q=bogus&n=10
$_SERVER['REQUEST_URI']
आप दे देंगे:
/some-dir/yourpage.php?q=bogus&n=10
जबकि $_GET['q']
आप दे देंगे:
bogus
दूसरे शब्दों में, $_SERVER['REQUEST_URI']
querystring सहित पूरा अनुरोध पथ धारण करेगा। और $_GET['q']
आपको क्वेरीस्ट्रिंग में पैरामीटर q
का मान देगा।
पीएचपी मैनुअल दोनों काफी अच्छी तरह से बताते हैं:
http://php.net/manual/en/reserved.variables.server.php # REQUEST_URI
http://php.net/manual/en/reserved.variables.get.php $ _GET [ "q"] चर
Drupal के संदर्भ में, अंतर है कि क्या निर्भर करेगा के लिए # स्वच्छ यूआरएल चालू हैं या नहीं। जबकि $_GET["q"]
क्या q
को असाइन किया गया होगा
, $_SERVER['REQUEST_URI']
के रूप में w//index.php
बुलाया पेज का पूरा पथ है,।
उनके साथ, वे लगभग अन्य तर्कों के समान होंगे, लेकिन $_GET["q"]
में अग्रणी /
गुम हो जाएगा। क्या हो रहा है यह देखने के लिए डिफ़ॉल्ट। Htaccess के अंत की ओर एक नज़र डालें। पृष्ठ में अतिरिक्त तर्क पारित होने पर वे अलग-अलग होंगे, उदाहरण के लिए जब पेजर सक्रिय होता है।
यह एकमात्र उत्तर है जो प्रश्न के प्रारंभिक कारण को हल करता है (यूआरएल रीराइटिंग); बल्कि स्पष्ट php superglobals परिभाषाओं को देने के बजाय। मुझे गलत मत समझो, अन्य उत्तरों स्वयं में बहुत सही हैं, लेकिन यह उत्तर प्रश्न के लिए कुछ पृष्ठभूमि प्रदान करता है और वास्तव में अधिक अपवित्र होना चाहिए! – Levit
उम .. वे दो पूरी तरह से अलग चीजें हैं? मुझे लगता है कि आपको कुछ संदर्भ जोड़ने की आवश्यकता होगी –