Thursday 15 March 2012

preg_replace for Get Parameter - /index.php?color=blue&size=xl -


मेरे पास यह url /index.php?color=blue&size=xl

छुटकारा पाने के लिए प्राप्त पैरामीटर का, मैं इस कोड का उपयोग करता हूं:

  $ done = preg_replace ('/ (। *) (\? | & Amp;) रंग = [^ & amp;;] * (? (1 ) & Amp; |)? / I ', "$ 1", $ url); गूंज $ किया; "आउटपुट: index.phpsize = xl"   

अब मुझे "आकार" भाग को भी साफ करने की आवश्यकता है I दो लाइनों के साथ preg_replace की कोशिश की है, लेकिन यह काम नहीं करता है।

  $ done = preg_replace ('/ (। *) (\? | & Amp;) रंग = [^ & amp; * (? (1) & amp; |)? / I ', "$ 1", $ url); गूंज $ किया; $ Done2 = preg_replace ('/ (। *) (\? | & Amp;) आकार = [^ & amp;] * (? (1) & amp; |)? / I', "$ 1", $ किया गया है);   

संपादित करें: मुझे वास्तव में एक समाधान की आवश्यकता है जहां मैं सटीक पैरामीटर "रंग" या "आकार" को साफ कर सकता हूं।

कभी-कभी मैं केवल उनमें से एक को हटाऊंगा। < / P>

एडिट 2: यह समाधान है:

  // यूआरएल है: index.php? Color = काला और आकार = xl और मूल्य = 20 फ़ंक्शन हटाए गए हैं ($ url, $ varname ) {वापसी preg_replace ('/ ([& amp;])'। $ वर्नाम। '= [^ & Amp;; + (& amp;;) /', '$ 1', $ url); } $ Url = removeqsvar ($ यूआरएल, रंग); प्रतिध्वन हटाएक्स्वार ($ url, मूल्य); // आउटपुट: index.php? Size = xl   

आपको धन्यवाद।

यह आपको निश्चित रूप से यह निर्दिष्ट करने की अनुमति देगा कि $ remove सरणी का उपयोग करके कौन से पैरामीटर निकालेंगे यह यूआरएल को पार्स करने के साथ काम करता है, फिर क्वेरी स्ट्रिंग को हथियाने और इसके साथ पार्सिंग करता है।

वहां से, यह सीधा है - यूआरएल में मापदंडों पर इटरेट करें, अगर उनमें से एक $ remove सरणी में है, तो इसे $ params से हटाएं < / कोड> सरणी अंत में, अगर हमारे पास यूआरएल में जोड़ने के लिए पैरामीटर हैं, तो हम उन्हें वापस जोड़ते हैं।

  $ url = '/index.php?color=blue&size=xl'; // आपका इनपुट URL $ remove = array ('color', 'आकार'); // इसे बदलने के लिए इसे बदलने के लिए आप $ parts = parse_url ($ url) चाहते हैं; Parse_str ($ भागों ['क्वेरी'], $ params); विदेशी मुद्रा ($ $ k = & gt; $ v के रूप में $ पैरामीटर) {यदि (in_array ($ k, $ हटायें)) {unset ($ params [$ k]); }} $ Url = $ भागों ['पथ']। ((गणना ($ params) & gt; 0)? '?'। Http_build_query ($ params): ''); Echo $ url;    

No comments:

Post a Comment