get http url parameter without auto decoding using PHP -
मेरे पास एक url है
test.php? X = हैलो + दुनिया और y file_put_contents ('x.txt', $ _GET [' एक्स']); // - & gt; हैलो वर्ल्ड फाइल_पूट_कंटेंट ('y.txt', $ _GET ['y']); // - & gt; \ 0h \ 0e \ 0l \ 0l \ 0o लेकिन मुझे इसे एन्कोडिंग के बिना लिखना होगा
file_put_contents ('x ।टेक्स्ट', ????); // - & gt; हैलो + विश्व फ़ाइल_पोट_कंटेंट ('y.txt', ????); // - & gt;% 00h% 00e% 00l% 00l% 00o मैं कैसे कर सकता हूं?
धन्यवाद
क्योंकि $ _ GET और $ _ अनुरोध सुपरग्लॉबल्स स्वचालित रूप से एक डीकोडिंग फ़ंक्शन के माध्यम से चलाए जाते हैं ( urldecode () ) के समतुल्य है, तो आपको यूआरएल स्ट्रिंग में दिए गए अक्षरों से मिलान करने के लिए डेटा को फिर से- urlencode () करने की आवश्यकता है: < प्री> file_put_contents ('x.txt', urlencode ($ _ GET ['x'])); // - & gt; हैलो + विश्व फ़ाइल_पोट_कंटेंट ('y.txt', urlencode ($ _ GET ['y'])); // - & gt;% 00h% 00e% 00l% 00l% 00o मैंने इसे स्थानीय रूप से जांच लिया है और यह पूरी तरह से काम कर रहा है I हालांकि, आपकी टिप्पणियों से, आप अपनी एन्कोडिंग सेटिंग को भी देखना चाहेंगे यदि urlencode का परिणाम ($ _ GET ['y']) है % 5C0h% 5C0e% 5C0l% 5C0l% 5C0o तो ऐसा लगता है कि null character < / Code> जो आप में गुजर रहे हैं (% 00 ) को एक शाब्दिक स्ट्रिंग "\ 0" (जैसे एक \ वर्ण की तरह) व्याख्या की जा रही है \ 0 को एक नल चरित्र के रूप में ठीक से व्याख्या करने के बजाय एक 0 चरित्र को जोड़कर। आपको एक नज़र रखना चाहिए।
Comments
Post a Comment