से एकल वैरिएबल वैल्यू जोड़ी को हटाएं मेरे पास एक ऐसा पृष्ठ है जो कई मानकों यानी मानों के साथ चर के अनुसार आइटम सूचीबद्ध करता है।PHP; querystring
listitems.php?color=green&size=small&cat=pants&pagenum=1&edit=1
अब तक तो अच्छा:
listitems.php?color=green&size=small&cat=pants&pagenum=1 etc.
सूची का संपादन सक्षम करने के लिए, मैं एक पैरामीटर संपादित = 1 जो ऊपर क्वेरी स्ट्रिंग में जोड़ा जाता है देना है।
जब उपयोगकर्ता संपादन कर लेता है, तो मेरे पास एक लिंक है जो संपादन मोड से बाहर निकलता है। मैं चाहता हूं कि यह लिंक पूरे क्वेरीस्ट्रिंग को निर्दिष्ट करे - जो कुछ भी हो सकता है क्योंकि यह उपयोगकर्ता विकल्पों के अधीन है - संपादन = 1 को छोड़कर।
जब मेरे पास केवल कुछ चर थे, तो मैंने उन्हें लिंक में मैन्युअल रूप से सूचीबद्ध किया लेकिन अब और भी कुछ है, मैं केवल संपादन = 1 को हटाने के लिए प्रोग्रामेटिक रूप से सक्षम होना चाहता हूं।
क्या मुझे संपादन = 1 के लिए कुछ प्रकार की खोज करना चाहिए और फिर इसे कुछ भी नहीं बदला जाना चाहिए?
$qs = str_replace("&edit=1, "", $_SERVER['QUERY_STRING']);
<a href='{$_SERVER['PHP_SELF']}?{$qs}'>return</a>;
या ऐसा करने के लिए सबसे अधिक त्रुटि-मुक्त तरीका क्या होगा।
नोट: पृष्ठ से पृष्ठ पर जाने पर मुझे एक समान स्थिति है जहां मैं पेगेनम लेना चाहता हूं और इसे एक अलग से बदलना चाहता हूं। वहां, चूंकि पेगेनियम भिन्न होता है, इसलिए मैं केवल पेगेनम = 1 की खोज नहीं कर सकता, लेकिन अगर 0xखोजना होगा तो इससे कोई फर्क पड़ता है।
धन्यवाद।
मैं कैसे $ _SERVER [ 'QUERY_STRING'] से करना होगा? – user1904273
'parse_url()' और 'parse_str()' है, लेकिन $ _GET हमेशा उपलब्ध और भरा हुआ है, इसलिए यह आवश्यक नहीं है। – Sven
मैं $ _GET वैरिएबल (या उस मामले के लिए किसी भी सुपरग्लोबल्स) को संशोधित नहीं करता क्योंकि उन्हें एप्लिकेशन में कहीं और आवश्यकता हो सकती है। इसके बजाय, एक अस्थायी चर बनाएँ जैसे '$ edit_query = $ _GET;'। फिर आप अपने सुपरग्लोब को प्रभावित किए बिना 'अनसेट ($ edit_query [' edit ']) कर सकते हैं; – Number1SuperGuy