Unserialize cadenas de textos con caracteres especiales

Después de varias horas teniendo problemas con objetos serializados que tenían textos en español dentro encontré la siguiente función en magp.ie que funcionó perfectamente:

function mb_unserialize($string) {
    $string = preg_replace_callback(
        '!s:(\d+):"(.*?)";!s',
        function ($matches) {
            if ( isset( $matches[2] ) )
                return 's:'.strlen($matches[2]).':"'.$matches[2].'";';
        },
        $string
    );
    return unserialize($string);
}

Por ejemplo:

var_dump(mb_unserialize('O:8:"stdClass":1:{s:4:"text";s:12:"áéíóúñ";}'));

class stdClass#1 (1) {
  public $text =>
  string(12) "áéíóúñ"
}

php

You might also like

Cambiar el sheel prompt
De la misma manera que añadimos colores a los textos en el terminal de Mac OS X, puedes cambiar el prompt...

ARSlides v1.0: Aplicación de presentación de diapositivas en realidad aumentada
Me alegra informaros de que (por fin) he publicado el código de la aplicación en realidad aumentada...

Añadir colores a los textos en el terminal de Mac OS X
Tan solo tienes que añadir las siguientes 2 líneas a /etc/profile, ~/.profile o ~/.bash_profile:export...

Nowdoc y heredoc en PHP
Del manual:Nowdocs son a las cadenas con comillas simples lo mismo que Heredoc lo es a las comillas...

Dejar un comentario?

0 Comentarios.

Deje un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.