2010-06-29 16 views
13

में लिखे गए $ _GET पैरामीटर स्ट्रिंग प्राप्त करने का सबसे आसान तरीका पैरामीटर को बनाए रखते हुए मैं एक पृष्ठ से दूसरे पृष्ठ पर रीडायरेक्ट करने का प्रयास कर रहा हूं।PHP - URL

उदा। अगर मेरे पास एक पेज पेज है। php? param1 = 1 & param2 = 2, "param1 = 1 & param2 = 2" निकालने का सबसे आसान तरीका क्या है?

उत्तर

33

उपयोग $_SERVER['QUERY_STRING'] प्रश्न चिह्न के बाद सब कुछ का उपयोग करने की।

तो अगर आप यूआरएल है:

http://www.sample.com/page.php?param1=1&param2=2 

तो यह:

$url = "http://www.sample.com/page2.php?".$_SERVER['QUERY_STRING']; 
echo $url; 

वापस आ जाएगी:

http://www.sample.com/page2.php?param1=1&param2=2 
5

मैं क्या करना होगा

$querystring = '?' 
foreach($_GET as $k=>$v) { 
    $querystring .= $k.'='.$v.'&'; 
} 
$url .= substr($querystring, 0, -1); 

जहां $url पहले से ही से पहले सब कुछ होता है?

आप भी $_SERVER['QUERY_STRING'] इस्तेमाल कर सकते हैं लेकिन प्रति पीएचपी पुस्तिका के रूप में:

$ _SERVER इस तरह के हेडर, पथ, और स्क्रिप्ट स्थानों के रूप में एक सरणी युक्त जानकारी है। इस सरणी में प्रविष्टियां वेब सर्वर द्वारा बनाई गई हैं। * इस बात की कोई गारंटी नहीं है कि हर वेब सर्वर इनमें से कोई भी प्रदान करेगा; सर्वर कुछ छोड़ सकते हैं, या दूसरों को यहां सूचीबद्ध नहीं कर सकते हैं। *

+1

कि तकनीकी रूप से सही है, लेकिन जो कुछ भी वेब सर्वर वह लगभग निश्चित रूप से उपयोग कर रहा है '$ _SERVER [ 'QUERY_STRING']' प्रदान करता है; अधिकांश PHP- आधारित सिस्टम मौजूदा –

+0

पर भरोसा करते हैं और यह आसानी से परीक्षण योग्य है। – Kzqai

+0

यह सरणी भी प्रस्तुत नहीं करेगा: 'key [innerkey] = value'। यह आपको प्राप्त करेगा: 'कुंजी = ऐरे' – ivoba

7

इसके अलावा लूटता जवाब देने के लिए:

आप कर सकते हैंका उपयोग करें 210 और $ _GET।
यह बिल्ड-इन है और सरणी से निपट सकता है।
इसके अलावा आप आसानी से जीईटी पैराम्स में आसानी से हेरफेर कर सकते हैं, क्योंकि आप उन्हें एक साथ फिर से रख सकते हैं।

unset($_GET['unsetthis']); 
$query = http_build_query($_GET);