Utilisez serialize() pour sérialiser les données et les insérer dans la base de données, puis utilisez unserialize() pour les désérialiser et rencontrer des erreurs de chaîne de données ;
Le contenu de l'erreur est :unserialize() [fonction .unserialize ] : Erreur au décalage 0 sur 2544 octets
J'ai cherché de nombreuses solutions sur Google et ils ont tous dit que le problème était dû à des problèmes d'encodage.
L'endroit où je l'ai inséré a donc été changé en base64_encode(serialize($str));
L'endroit où je l'ai inséré lu, il a été modifié en
unserialize(preg_replace('!s:(d+):"(.*?)";!se', '"s:".strlen("$2").":"$2";"', $string))
Je l'ai essayé et cela a fonctionné, mais cela n'a pas été complètement résolu. Plus tard, la même erreur s'est produite dans certains datagrammes, j'ai constaté que le contenu inséré s'est transformé en quelque chose de similaire au code tronqué ci-dessous.
< /p>
S'il vous plaît, aidez-moi à découvrir la raison, de préférence plus en détail.
Publiez des données sources, sinon comment pouvez-vous les tester ? .
Confirmez s'il y a un problème avec vos données sérialisées. J'ai déjà utilisé Serialize, mais cela a toujours eu des problèmes. Ensuite, je n'ai eu d'autre choix que de passer à json_decode
.base64_encode("a:1") == "YTox"
.Ces données sont codées en base64 et non tronquées.