Treci la conținut
PHP Serializator

PHP Serializer

Bine ați venit la instrumentul nostru de serializare PHP. Serializați și deserializați cu ușurință date în PHP. Acest instrument este ideal pentru dezvoltatorii care doresc să transforme structuri de date complexe în șiruri care pot fi stocate și să le recupereze în forma originală.

Ce face PHP Serializer

PHP Serializer convertește JSON în formatul de șir al PHP serialize() și transformă șirurile serializate înapoi în JSON formatat. Lungimile șirurilor din forma serializată sunt calculate în octeți, astfel că o valoare cu litere accentuate are o lungime mai mare decât numărul său de caractere.

Deserializarea nu creează niciodată obiecte ale claselor dumneavoastră: obiectul revine ca __PHP_Incomplete_Class, cu numele clasei păstrat în __PHP_Incomplete_Class_Name, ceea ce împiedică datele de intrare nesigure să ruleze cod. Obiectele JSON devin tablouri PHP cu chei de tip șir.

Exemple rezolvate

JSON într-un șir serializat

a:4 este un tablou cu patru intrări, iar fiecare șir conține lungimea sa în octeți.

Introducere
{"name": "Ada", "age": 36, "admin": true, "tags": ["php", "json"]}
Rezultat
a:4:{s:4:"name";s:3:"Ada";s:3:"age";i:36;s:5:"admin";b:1;s:4:"tags";a:2:{i:0;s:3:"php";i:1;s:4:"json";}}

Un șir serializat în JSON

Zürich are 6 litere, dar 7 octeți în UTF-8, deci lungimea sa este s:7.

Introducere
a:2:{s:4:"city";s:7:"Zürich";s:3:"zip";s:4:"8001";}
Rezultat
{
  "city": "Zürich",
  "zip": "8001"
}

Un obiect serializat

Obiectul nu este reconstruit ca o instanță reală de stdClass. Numele clasei și proprietățile sale sunt afișate ca date.

Introducere
O:8:"stdClass":1:{s:2:"id";i:7;}
Rezultat
{
  "__PHP_Incomplete_Class_Name": "stdClass",
  "id": 7
}

Coduri de tip serializate

CodTipExemplu
NnullN;
bBoolean, 1 pentru true și 0 pentru falseb:1;
iNumăr întregi:36;
dNumăr în virgulă mobilăd:0.5;
sȘir, cu lungimea sa în octețis:3:"PHP";
aTablou, cu numărul de intrări și perechile cheie-valoarea:1:{i:0;s:1:"x";}
OObiect, cu lungimea numelui clasei, numele clasei și numărul de proprietățiO:8:"stdClass":0:{}

How to Use the PHP Serializer

  1. Input your data into the provided field.
  2. Pasul 2: Faceți clic pe butonul „Serialize” pentru a transforma structura de date într-un șir care poate fi stocat.
  3. Pasul 3: Pentru a deserializa, introduceți șirul serializat și faceți clic pe butonul „Deserialize” pentru a reveni la structura de date originală.

Benefits of Using Our PHP Serializer

  • Gestionarea eficientă a datelor: transformați cu ușurință structurile de date în formate care pot fi stocate.
  • Utilizare versatilă: acceptă tablouri, obiecte și tipuri scalare.
  • Flux de lucru îmbunătățit: simplifică salvarea și recuperarea datelor complexe în dezvoltarea PHP.

Întrebări frecvente

Cum serializez datele în PHP?

Pentru a serializa date în PHP, introduceți datele în câmpul furnizat și faceți clic pe butonul Serialize. Instrumentul va converti structura complexă de date într-un format de șir stocabil.

Cum deserializez datele în PHP?

Pentru a deserializa date în PHP, introduceți șirul serializat în câmpul furnizat și faceți clic pe butonul Deserialize. Instrumentul va converti șirul înapoi în structura sa originală de date.

De ce este utilă serializarea în PHP?

Serializarea în PHP este utilă pentru convertirea structurilor complexe de date într-un format stocabil, facilitând salvarea datelor în fișiere, baze de date sau transmiterea lor prin rețele. Deserializarea vă permite să recuperați și să utilizați aceste date în forma lor originală.

Ce tipuri de date pot fi serializate în PHP?

PHP acceptă serializarea diferitelor tipuri de date, inclusiv a array-urilor, obiectelor și tipurilor scalare, cum ar fi numerele întregi și șirurile de caractere. Acest lucru îl face un instrument versatil pentru manipularea diferitelor tipuri de date.

Există considerații de securitate la deserializarea datelor?

Da, deserializarea datelor poate prezenta riscuri de securitate, mai ales dacă datele serializate provin dintr-o sursă nesigură. Validați și igienizați întotdeauna datele de intrare pentru a preveni vulnerabilitățile de securitate, cum ar fi atacurile prin injectarea de obiecte.

Pot serializa și deserializa obiecte personalizate?

Da, PHP poate serializa și deserializa obiecte personalizate. Cu toate acestea, asigurați-vă că definițiile clasei sunt disponibile la deserializare pentru a reconstrui corect obiectele.

Ce deosebește serialize() de JSON?

PHP serialize() păstrează tipurile exacte de date, proprietățile private/protejate și informațiile despre clasa obiectului, dar funcționează numai în PHP. JSON este independent de limbaj, lizibil, ușor de utilizat pe web și funcționează în toate limbajele, dar pierde proprietățile private. Utilizați serialize() pentru stocare doar în PHP; JSON pentru API-uri.

Cum folosesc serializarea pentru sesiuni?

PHP serializează automat datele de sesiune ($_SESSION) pentru stocare între cereri. Atunci când stocați matrici sau obiecte în sesiuni, PHP le serializează în fișiere sau baze de date, apoi le deserializează la încărcările ulterioare ale paginii. Acest lucru permite menținerea stării utilizatorului și a coșurilor de cumpărături de-a lungul vizitelor paginii.

Datele serializate pot fi stocate în baze de date?

Da, stocați datele serializate în coloane de baze de date TEXT sau BLOB. Cu toate acestea, datele serializate împiedică interogarea, indexarea și căutarea eficiente. Utilizați serializarea pentru obiecte complete stocate ca unități unice, dar preferați JSON sau tabelele normalizate atunci când trebuie să interogați câmpuri individuale.

Cum arată datele PHP serializate?

Datele serializate utilizează prefixele de format: s:5:"hello" (string), i:42 (integer), a:2:{...} (array), O:4:"User" (object). Numerele indică lungimea sau numărul. Formatul este compact, dar nu este lizibil de către om. Utilizați instrumentul nostru pentru a converti între JSON lizibil și formatul serializat PHP.

Cum depanez datele serializate?

Deserializați datele pentru a le inspecta structura, utilizați print_r() sau var_dump() pe valorile deserializate, convertiți-le în JSON pentru lizibilitate, verificați serializarea incompletă sau corupția, verificați disponibilitatea claselor pentru obiecte și utilizați instrumentul nostru pentru a vizualiza și înțelege structurile serializate complexe.

Pot serializa închideri sau funcții anonime?

Serializarea PHP standard nu acceptă închideri. Utilizați pachete precum Opis Closure sau Laravel's SerializableClosure pentru această funcționalitate. Funcțiile și metodele obișnuite din obiecte pot fi serializate dacă sunt definite în clase, dar funcțiile anonime necesită o tratare specială.

Care sunt metodele magice de serializare?

__sleep() rulează înainte de serializare, returnând un array de proprietăți pentru serializare (util pentru excluderea anumitor date). __wakeup() rulează după deserializare pentru inițializare. __serialize() și __unserialize() (PHP 7.4+) oferă mai mult control. Implementați-le pentru un comportament de serializare personalizat.

Cum migrez de la date serializate la JSON?

Deserializarea datelor PHP existente, convertirea în matrici/obiecte StdClass, apoi codificarea JSON. Actualizați codul pentru a utiliza json_encode()/json_decode() în loc de serialize()/unserialize(). JSON este mai sigur, mai ușor de citit și mai compatibil, deși veți pierde proprietățile private și păstrarea tipului exact.

Despre PHP Serializer

Serializați și deserializați cu ușurință date în PHP cu instrumentul nostru versatil PHP de serializare și deserializare. Acest utilitar online este ideal pentru dezvoltatorii care vor să transforme structuri complexe de date în șiruri ce pot fi stocate și să le readucă la forma inițială. Gestionați datele precis și eficient, fără instalarea vreunui software. Îmbunătățiți fluxul de lucru pentru dezvoltarea în PHP cu acest instrument ușor de folosit și fiabil.