2016-08-09 66 views
0

So ist der Code, den ich für deserialisieren bin mit istDer Versuch, mehrere Arrays aus einer Datei in PHP unserialize und nur die erste Linie bekommen

<?php 
$uline = unserialize(file_get_contents('phonebook.dat')); 
?> 

Dies ist für die erste Zeile des ‚phonebook.dat‘ funktioniert, aber die folgende Zeilen werden nicht unsialisiert. Das serialisierte Format ist wie folgt:

a:4:{s:4:"Name";s:8:"John Doe";s:7:"Address";a:4:{s:6:"Street";s:11:"123 Main St";s:4:"City";s:5:"Dover";s:5:"State";s:2:"DE";s:3:"Zip";s:5:"19904";}s:5:"Phone";s:12:"555-555-1234";s:5:"Email";s:16:"[email protected]";} 
a:4:{s:4:"Name";s:8:"Jane Doe";s:7:"Address";a:4:{s:6:"Street";s:11:"123 Main St";s:4:"City";s:5:"Dover";s:5:"State";s:2:"DE";s:3:"Zip";s:5:"19904";}s:5:"Phone";s:12:"555-555-5678";s:5:"Email";s:16:"[email protected]";} 
a:4:{s:4:"Name";s:15:"Jonny Appleseed";s:7:"Address";a:4:{s:6:"Street";s:15:"1 Infinite Loop";s:4:"City";s:10:"Coopertino";s:5:"State";s:2:"CA";s:3:"Zip";s:5:"90201";}s:5:"Phone";s:12:"555-555-9101";s:5:"Email";s:15:"[email protected]";} 
a:4:{s:4:"Name";s:12:"Jack Sparrow";s:7:"Address";a:4:{s:6:"Street";s:15:"The Black Pearl";s:4:"City";s:17:"Cut Throat Island";s:5:"State";s:7:"Tortuga";s:3:"Zip";s:5:"00001";}s:5:"Phone";s:12:"555-555-1213";s:5:"Email";s:14:"[email protected]";} 
a:4:{s:4:"Name";s:14:"Luke Skywalker";s:7:"Address";a:4:{s:6:"Street";s:15:"17 Jedi Council";s:4:"City";s:8:"Corasant";s:5:"State";s:2:"XX";s:3:"Zip";s:5:"99999";}s:5:"Phone";s:12:"555-555-1415";s:5:"Email";s:17:"[email protected]";} 

Wenn ich rufe die unserialize Funktion ich die ganze „John Doe“ Linie als eine Ausgabe erhalten, kann aber nicht herausfinden, wie der Rest der Datei deserialisieren. Vielen Dank.

+4

Werfen Sie einen Blick auf 'file()', die Ihre Datei in ein Array gelesen wird. Dann möchten Sie jede Zeile einzeln deserialisieren. – Rizier123

+1

https://eval.in/619750 –

+0

@RobbieAverill das funktioniert, wenn ich den Code in die PHP-Datei einfügen, aber wenn ich die eingefügten serialisierten Daten für $ contents = ('phonebook.dat') austauschen; Ich bekomme eine "Notice: unserialize(): Fehler bei Offset 0 von 13 Bytes". Wissen Sie, woraus das sein könnte? – Baker2795

Antwort