Avatar ·

PHP में urlencode और rawurlencode के बीच क्या अंतर है और कब क्या उपयोग करें?

सभी को नमस्ते! मैं एक शुरुआती PHP-डेवलपर हूं, और मुझे दो functions: `urlencode()` और `rawurlencode()` को लेकर भ्रम हो गया है। मुझे पता है कि दोनों का उपयोग URL को एन्कोड करने के लिए किया जाता है, लेकिन मैं समझ नहीं पा रहा हूं कि इनमें मूलभूत अंतर क्या है और कौन सा विकल्प उपयोग करना अधिक सही है। मान लीजिए, मुझे URL में सिरिलिक वर्णों और spaces वाली एक string भेजनी है: ```php $string = "Привет мир!"; echo urlencode($string); // %D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82+%D0%BC%D0%B8%D1%80%21 echo rawurlencode($string); // %D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82%20%D0%BC%D0%B8%D1%80%21 ``` मैंने देखा कि `urlencode` space को `+` से बदलता है, जबकि `rawurlencode` इसे `%20` से बदलता है। लेकिन जब मैंने RFC 3986 documentation पढ़ी, तो उसमें कहा गया है कि space को `%20` के रूप में एन्कोड किया जाना चाहिए। तो फिर `urlencode` function क्यों मौजूद है, जो `+` का उपयोग करता है?