Se avete provato a serializzare e poi deserializzare una stringa multi-byte in PHP, avrete sicuramente notato che il risultato non è quello sperato. Questo perché la funzione unserialize di PHP non lavora correttamente con le stringe multi-byte. Potete aggiungere ed usare la seguente funzione, al posto della classica unserialize, per ovviare al problema:
1 2 3 4 | "]function mb_unserialize($string) { $string = preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'",$string); returnunserialize($string); } |
In alternativa consiglio di utilizzare le funzioni serialize/unserialize in congiungione con la codifica base64. In pratica per serializzare:
1 | $serialized_val=base64_encode(serialize($userialized_array)); |
mentre per deserializzare:
1 | $unserialized_array=unserialize(base64_decode($serialized_val)); |
Ti interessa acquistare un dominio a prezzi ultraconvenienti? clicca qui
Se hai trovato utili le informazioni su questo blog,
Fai una donazione!
Clicca sul bottone qui sotto o almeno clicca sul banner pubblicitario 🙂
Commenta