Domanda

Ho un grande array 2d che serializzo e base64_encode e lancio in un database. Su una pagina diversa estraggo l'array e quando base64_decode riesco a riecheggiare l'array serializzato e sembra decisamente valido.

Tuttavia, se provo a annullare la serializzazione (base64_decode ($ serializedArray)) , getta lo stesso errore fino al punto di quasi crash di Firefox.

L'errore è:

  

Avviso: unserialize () [function.unserialize]: il nodo non esiste più in /var/www/dev/wc_paul/inc/analyzerTester.php sulla linea 24

Includerei l'intero array serializzato che echeggio, ma l'ultima volta che ho provato che su questo modulo si è bloccato il mio Firefox.

Qualcuno ha idea del perché ciò potrebbe accadere?

È stato utile?

Soluzione

Sei sicuro di serializzare un array e non un oggetto (ad es. DOMNode?) Come le risorse, non tutte le classi saranno felici di non essere serializzate. Ad esempio con il DOM (che il tuo errore mi suggerisce che stai lavorando), ogni nodo ha un riferimento a parentNode e se il parentNode non esiste nel momento in cui un nodo non viene serializzato, non è in grado di ricreare quel riferimento e i problemi che ne conseguono.

Suggerirei di salvare l'albero dei dom come XML nel database e di caricarlo in un secondo momento.

Altri suggerimenti

Assicurarsi che il campo del database sia abbastanza grande da contenere l'array serializzato. I dati serializzati sono molto inefficienti nello spazio in PHP e molti DB (come MySQL) troncano silenziosamente valori di campo troppo lunghi.

Che tipo di elementi sono nel tuo array? serialize / unserialize non funziona con gli oggetti PHP integrati e di solito è la causa di quell'errore.

Inoltre, in base al tuo commento questo non è un tuo problema, ma per risparmiare spazio nel tuo database non codificare base64 i dati, basta sfuggirli. ad esempio per mysql utilizzare mysql_real_escape_string.

Assicurati di non serializzare le risorse, non possono essere serializzate.

Resources@php.net

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top