Converter JSON Object naar Serialized PHP Object
Serialiseer en deserialiseer eenvoudig gegevens in PHP met onze veelzijdige tool PHP Serializer and Deserializer. Dit online hulpprogramma is ideaal voor ontwikkelaars die complexe gegevensstructuren willen omzetten in opslaanbare tekenreeksen en ze weer in hun oorspronkelijke vorm willen terugzetten. Verwerk gegevens nauwkeurig en efficiënt, zonder software te installeren. Verbeter je PHP-ontwikkelworkflow met deze gebruiksvriendelijke en betrouwbare tool.
Veelgestelde vragen
Voer je gegevensstructuur (array, object of scalaire waarde) in het veld in om gegevens in PHP te serialiseren en klik op de knop Serialize. De tool zet complexe gegevensstructuren met het serialisatieprotocol van PHP om in een opslaanbare tekenreeks. Die kun je opslaan in bestanden of databases, of via netwerken verzenden.
Voer de geserialiseerde tekenreeks (die meestal begint met een formaataanduiding zoals a:, s: of O:) in het veld in om gegevens in PHP te deserialiseren en klik op de knop Deserialize. De tool zet de tekenreeks terug in de oorspronkelijke gegevensstructuur en herstelt arrays, objects en waarden precies zoals ze vóór de serialisatie waren.
Serialisatie zet complexe gegevensstructuren om in opslaanbare tekenreeksen. Daardoor kun je gegevens blijvend opslaan in bestanden of databases, via netwerken verzenden, sessiegegevens opslaan, caching toepassen, payloads voor message queues maken en de status van objects tussen verzoeken bewaren. Met deserialisatie haal je de oorspronkelijke gegevens weer op voor verder gebruik.
PHP serialiseert tekenreeksen, integers, floats, booleans, arrays, objects en NULL-waarden. De serialisatie behoudt arraysleutels, objecteigenschappen (public, protected, private), geneste structuren en gegevenstypen. Resources zoals databaseverbindingen of bestandshandles kunnen echter niet worden geserialiseerd en vereisen speciale verwerking.
Ja, bij het deserialiseren van niet-vertrouwde gegevens kunnen PHP-objectinjectieaanvallen optreden. Aanvallers kunnen schadelijke geserialiseerde tekenreeksen maken die code uitvoeren via magische methoden (__wakeup, __destruct). Deserialiseer nooit gebruikersinvoer of externe gegevens zonder validatie. Gebruik JSON voor niet-vertrouwde gegevens of beperk allowed_classes.
Ja, PHP serialiseert aangepaste objects met behoud van al hun eigenschappen en waarden. Klassedefinities moeten wel zijn geladen voordat je deserialiseert, zodat objects correct kunnen worden hersteld. Gebruik autoloading, laad klassebestanden in of implementeer de magische methoden __sleep() en __wakeup() voor aangepast serialisatiegedrag.
PHP serialize() behoudt exacte gegevenstypen, private/protected-eigenschappen en objectklasse-informatie, maar werkt alleen in PHP. JSON is taalonafhankelijk, leesbaar, geschikt voor het web en werkt in alle talen, maar verliest private eigenschappen en behoudt PHP-typen niet exact. Gebruik serialize() alleen voor opslag in PHP; gebruik JSON voor API's en interoperabiliteit.
PHP serialiseert sessiegegevens ($_SESSION) automatisch om deze tussen verzoeken op te slaan. Wanneer je arrays of objects in sessies opslaat, serialiseert PHP deze naar bestanden of databases en deserialiseert ze bij volgende paginaweergaven. Zo blijven gebruikersstatus, winkelwagens en authenticatie behouden tijdens bezoeken aan verschillende pagina's.
Ja, je kunt geserialiseerde gegevens opslaan in TEXT- of BLOB-kolommen in een database. Daardoor kun je die gegevens echter niet efficiënt opvragen, indexeren of doorzoeken. Gebruik serialisatie voor volledige objects die je als één geheel opslaat. Kies JSON of genormaliseerde tabellen als je afzonderlijke velden wilt opvragen of gegevensrelaties wilt behouden.
Geserialiseerde gegevens gebruiken formaatsvoorvoegsels: s:5:"hello" (tekenreeks), i:42 (integer), a:2:{...} (array), O:4:"User" (object). De getallen geven de lengte of het aantal aan. De indeling is compact, maar niet leesbaar voor mensen. Gebruik onze tool om gegevens om te zetten tussen het leesbare JSON- en het geserialiseerde PHP-formaat. Zo kun je gegevens debuggen en bewerken.
Deserialiseer de gegevens om de structuur te inspecteren, gebruik print_r() of var_dump() op gedeserialiseerde waarden, converteer naar JSON voor leesbaarheid, controleer op onvolledige serialisatie of corruptie, controleer de beschikbaarheid van klassen voor objecten en gebruik onze tool om complexe geserialiseerde structuren te visualiseren en te begrijpen.
Standaard PHP serialisatie ondersteunt geen closures. Gebruik pakketten zoals Opis Closure of Laravel's SerializableClosure voor deze functionaliteit. Gewone functies en methoden in objecten kunnen worden geserialiseerd als ze zijn gedefinieerd in klassen, maar anonieme functies vereisen een speciale behandeling.
__sleep() wordt vóór de serialisatie uitgevoerd en geeft een array met te serialiseren eigenschappen terug. Dit is handig om bepaalde gegevens uit te sluiten. __wakeup() wordt na het deserialiseren uitgevoerd voor initialisatie. __serialize() en __unserialize() (PHP 7.4+) bieden meer controle. Implementeer deze methoden voor aangepast serialisatiegedrag in je klassen.
Deserialiseer bestaande PHP-gegevens, zet deze om in arrays of stdClass-objects en codeer ze vervolgens met JSON. Pas je code aan zodat deze json_encode()/json_decode() gebruikt in plaats van serialize()/unserialize(). JSON is veiliger, leesbaarder en compatibel, maar je verliest private eigenschappen en het exacte behoud van typen dat serialisatie biedt.