PHP सरणियों का सीरियलाइज़ेशन: json_encode बनाम serialize — क्या चुनें?
सभी को नमस्ते! मैं PHP में नौसिखिया हूँ और एक प्रोजेक्ट विकसित करते समय एक दुविधा का सामना कर रहा हूँ। मुझे arrays को कैश (फ़ाइलें या Redis) में सहेजना है और फिर उन्हें वापस पढ़ना है। मुझे दो तरीके मिले: serialize() और json_encode()। लेकिन मैं समझ नहीं पा रहा हूँ कि कौन सा उपयोग करना बेहतर है।
यहाँ मेरे कोड का उदाहरण है:
```php
// विकल्प 1: serialize
$data = ['user' => 'Иван', 'age' => 30, 'hobbies' => ['чтение', 'программирование']];
$serialized = serialize($data);
file_put_contents('cache.txt', $serialized);
$restored = unserialize(file_get_contents('cache.txt'));
// विकल्प 2: json_encode
$json = json_encode($data, JSON_UNESCAPED_UNICODE);
file_put_contents('cache.json', $json);
$decoded = json_decode(file_get_contents('cache.json'), true);
```
दोनों विकल्प काम करते प्रतीत होते हैं, लेकिन मैंने कुछ अजीब चीज़ें देखीं:
1. serialize() कुछ अक्षरों और संख्याओं के साथ एक अधिक 'गंदा' स्ट्रिंग बनाता है।
2. json_encode() एक साफ JSON उत्पन्न करता है जिसे किसी भी editor में खोला जा सकता है।
3. रूसी वर्णों के साथ काम करते समय json_encode बिना फ़्लैग JSON_