Pregunta

Tengo una gran matriz 2d que me serializar y base64_encode y tirar en una base de datos.En una página diferente me tire de la matriz y cuando me base64_decode el array serializado puedo echo un vistazo y definitivamente se ve válido.

Sin embargo, si intento unserialize(base64_decode($serializedArray)) simplemente tira el mismo error hasta el punto de casi estrellarse Firefox.

El error es:

Advertencia: unserialize() [función.unserialize]:Nodo ya no existe en /var/www/dev/wc_paul/inc/analyzerTester.php en la línea 24

Habría que incluir la totalidad del array serializado que me echo a cabo, pero la última vez que traté de que en este formulario se estrelló mi Firefox.

¿Alguien tiene alguna idea de por qué esto podría estar sucediendo?

¿Fue útil?

Solución

Son estás seguro de lo que acaba de registrar una matriz, y no un objeto (por ejemplo,DOMNode?) Como los recursos, no en todas las clases van a ser felices con ser deserializada.Como un ejemplo con el DOM (que tu error me sugiere usted está trabajando), cada nodo tiene una referencia a la parentNode, y si el parentNode no existe en el momento en que un nodo que se está deserializada, no es capaz de recrear de referencia y de presentarse problemas.

Yo sugeriría guardar el árbol dom XML a la base de datos y carga de nuevo más tarde.

Otros consejos

Asegúrese de que el campo de base de datos es lo suficientemente grande para almacenar el array serializado.Datos serializados es muy espacio ineficientes en PHP, y muchos DBs (como MySQL) silenciosamente truncar los valores de campo que son demasiado largos.

¿Qué tipo de elementos se encuentran en la matriz?serializar/unserialize no funciona con construido-en objetos de PHP, y que suele ser la causa de ese error.

También, con base en su comentario, este no es tu problema, pero para ahorrar espacio en la base de datos no base64 codificar los datos, acaba de escapar de ella.es decir,para mysql uso mysql_real_escape_string.

Asegúrese de que usted no serializar los recursos, que no pueden ser serializados.

Resources@php.net

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top