Ich habe ein riesiges mehrdimensionales Array, das von PHP serialisiert wurde. Es wurde in MySQL gespeichert und das Datenfeld war nicht groß genug ... das Ende wurde abgeschnitten ... Ich muss die Daten extrahieren ... unserialize
funktioniert nicht ... weiß irgendjemand von einem Code das kann alle Arrays schließen ... Stringlängen neu berechnen ... es sind zu viele Daten von Hand zu tun.
Vielen Dank.
Dies ist die Neuberechnung der Länge der Elemente in einem serialisierten Array:
%Vor% Es funktioniert jedoch nicht, wenn Ihre Zeichenfolgen ";
enthalten. In diesem Fall ist es nicht möglich, die serialisierte Array-Zeichenfolge automatisch zu korrigieren - manuelle Bearbeitung ist erforderlich.
Ich habe alles versucht, was in diesem Post gefunden wurde und nichts hat für mich funktioniert. Nach Stunden des Schmerzes hier ist, was ich in den tiefen Seiten von Google fand und schließlich funktionierte:
%Vor%Sie rufen die Routine wie folgt auf:
%Vor%Das folgende Snippet versucht, & amp; rekursiv beschädigte serialisierte Zeichenfolge (Blobdaten) analysieren. Zum Beispiel, wenn Sie zu lange in die Spaltenspalte der Datenbank gespeichert haben und diese abgeschnitten wurde. Numerische Primitive und Bool sind garantiert gültig, Strings können abgeschnitten und / oder Array-Schlüssel fehlen. Die Routine kann z.B. wenn das Wiederherstellen von signifikanten (nicht allen) Daten eine ausreichende Lösung für Sie darstellt.
%Vor% Verwendung von preg_replace_callback()
anstelle von preg_replace(.../e)
(weil /e
modifier ist veraltet ).
Ich bezweifle, dass jemand Code schreiben würde, um teilweise gespeicherte Arrays abzurufen :) Ich habe ein Ding wie dieses einmal, aber mit der Hand repariert und es dauerte Stunden, und dann erkannte ich, dass ich diesen Teil des Arrays nicht brauche ...
Wenn es nicht wirklich wichtige Daten sind (und ich meine wirklich wichtig), wäre es besser, dieses eine zu verlassen
Basierend auf @Emil M Antwort Hier ist eine feste Version, die mit einem doppelten Anführungszeichen arbeitet.
%Vor%Sie können ungültige serialisierte Daten über ein Array in den Normalzustand zurückversetzen:)
%Vor%Tags und Links php