Siirry sisältöön
PHP-serialisaattori

PHP-serialisaattori

Tervetuloa PHP-serialisaattoriin. Sarjoita ja deserialisoi tietoja helposti PHP:ssä. Tämä työkalu on täydellinen kehittäjille, jotka haluavat muuntaa monimutkaisia tietorakenteita tallennettaviksi merkkijonoiksi ja hakea ne takaisin alkuperäiseen muotoonsa.

Mitä PHP Serializer tekee

PHP Serializer muuntaa JSON:n muotoon PHP:n serialize() merkkijonomuodossa ja muuntaa sarjallistetut merkkijonot takaisin muotoilluiksi JSON-arvoiksi. Sarjallistetussa muodossa merkkijonojen pituudet lasketaan tavuina, joten aksenttimerkkejä sisältävän arvon pituus on suurempi kuin sen merkkien määrä.

Sarjallistuksen purkaminen ei koskaan luo luokistasi objekteja: objekti palautuu muodossa __PHP_Incomplete_Class, jonka luokan nimi säilytetään kohdassa __PHP_Incomplete_Class_Name. Näin epäluotettu syöte ei voi suorittaa koodia. JSON-objekteista tulee PHP-taulukoita, joissa on merkkijonoavaimet.

Esimerkkilaskelmia

JSON sarjallistettuna merkkijonona

a:4 on taulukko, jossa on neljä alkiota, ja kunkin merkkijonon pituus ilmoitetaan tavuina.

Syöte
{"name": "Ada", "age": 36, "admin": true, "tags": ["php", "json"]}
Tulos
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";}}

Sarjallistettu merkkijono muodossa JSON

Zürichissä on 6 kirjainta mutta 7 tavua UTF-8-muodossa, joten sen pituus on s:7.

Syöte
a:2:{s:4:"city";s:7:"Zürich";s:3:"zip";s:4:"8001";}
Tulos
{
  "city": "Zürich",
  "zip": "8001"
}

Sarjallistettu objekti

Objektia ei rakenneta uudelleen aidoksi stdClass-instanssiksi. Sen luokan nimi ja ominaisuudet näytetään tietoina.

Syöte
O:8:"stdClass":1:{s:2:"id";i:7;}
Tulos
{
  "__PHP_Incomplete_Class_Name": "stdClass",
  "id": 7
}

Sarjallistettujen tyyppien koodit

KoodiTyyppiEsimerkki
NnullN;
bTotuusarvo: 1 tarkoittaa totta ja 0 epätottab:1;
iKokonaislukui:36;
dLiukulukud:0.5;
sMerkkijono, jonka pituus ilmoitetaan tavuinas:3:"PHP";
aTaulukko, jossa on alkioiden määrä sekä avain-arvoparita:1:{i:0;s:1:"x";}
OObjekti, jonka luokan nimen pituus, luokan nimi ja ominaisuuksien määrä ilmoitetaanO:8:"stdClass":0:{}

PHP-serialisaattorin käyttäminen

  1. Vaihe 1: Syötä tietosi sille varattuun kenttään.
  2. Vaihe 2: Napsauta 'Serialize' -painiketta muuntaaksesi tietorakenteen tallennettavaksi merkkijonoksi.
  3. Vaihe 3: Kun haluat deserialisoida, syötä serialisoitu merkkijono ja napsauta 'Deserialize' -painiketta palataksesi alkuperäiseen tietorakenteeseen.

PHP-serialisaattorimme käytön edut

  • Tehokas tietojenkäsittely: Muunna tietorakenteet helposti tallennettaviin muotoihin.
  • Monipuolinen käyttö: Tukee matriiseja, objekteja ja skalaarityyppejä.
  • Parannettu työnkulku: Yksinkertaistaa monimutkaisten tietojen tallentamista ja hakemista PHP-kehityksessä.

Usein kysytyt kysymykset

Miten sarjallistan datan PHP:ssä?

Jos haluat sarjallistaa tietoja PHP:ssä, syötä tiedot sille varattuun kenttään ja napsauta Sarjallistaa-painiketta. Työkalu muuntaa monimutkaisen tietorakenteen tallennettavaan merkkijonomuotoon.

Miten deserialisoin tietoja PHP:ssä?

Jos haluat deserialisoida tietoja PHP:ssä, syötä serialisoitu merkkijono sille varattuun kenttään ja napsauta Deserialize-painiketta. Työkalu muuntaa merkkijonon takaisin alkuperäiseksi tietorakenteeksi.

Miksi sarjallistaminen on hyödyllistä PHP:ssä?

PHP:n sarjallistaminen on hyödyllistä monimutkaisten tietorakenteiden muuntamisessa tallennettavaan muotoon, mikä helpottaa tietojen tallentamista tiedostoihin, tietokantoihin tai niiden siirtämistä verkoissa. Deserialisoinnin avulla voit hakea ja käyttää tätä tietoa alkuperäisessä muodossaan.

Mitä tietotyyppejä voidaan sarjallistaa PHP:ssä?

PHP tukee erilaisten tietotyyppien, kuten matriisien, objektien ja skalaarityyppien, kuten kokonaislukujen ja merkkijonojen, sarjallistamista. Tämä tekee siitä monipuolisen työkalun erilaisten tietojen käsittelyyn.

Onko tietojen deserialisoinnissa huomioitava tietoturva?

Kyllä, tietojen deserialisointi voi aiheuttaa tietoturvariskejä, varsinkin jos sarjallistetut tiedot ovat peräisin epäluotettavasta lähteestä. Validoi ja puhdista syötetyt tiedot aina, jotta voit estää tietoturva-aukkoja, kuten objekti-injektiohyökkäyksiä.

Voinko sarjallistaa ja deserialisoida mukautettuja objekteja?

Kyllä, PHP voi serialisoida ja deserialisoida mukautettuja objekteja. Varmista kuitenkin, että luokkamääritelmät ovat käytettävissä deserialisoinnin aikana, jotta objektit voidaan rakentaa uudelleen oikein.

Mikä erottaa serialize():n JSON:sta?

PHP serialize() säilyttää tarkat tietotyypit, yksityiset/suojatut ominaisuudet ja objektiluokan tiedot, mutta se toimii vain PHP:ssä. JSON on kieliagnostinen, luettava, verkkoystävällinen ja toimii kaikilla kielillä, mutta se menettää yksityiset ominaisuudet. Käytä serialize()-toimintoa vain PHP:ssä tapahtuvaan tallennukseen ja JSON:ia API-rajapintoihin.

Miten käytän sarjallistamista istuntoja varten?

PHP serialisoi automaattisesti istuntotiedot ($_SESSION) tallennettavaksi pyyntöjen välillä. Kun tallennat matriiseja tai objekteja istuntoihin, PHP serialisoi ne tiedostoihin tai tietokantoihin ja deserialisoi ne sitten seuraavien sivulatausten yhteydessä. Tämä mahdollistaa käyttäjän tilan ja ostoskärryjen säilyttämisen eri sivukäyntien välillä.

Voidaanko serialisoituja tietoja tallentaa tietokantoihin?

Kyllä, tallenna sarjallistetut tiedot TEXT- tai BLOB-tietokannan sarakkeisiin. Sarjoitetut tiedot estävät kuitenkin tehokkaan kyselyn, indeksoinnin ja haun. Käytä sarjallistamista kokonaisille objekteille, jotka on tallennettu yksittäisinä yksikköinä, mutta suosi JSON- tai normalisoituja taulukoita, kun sinun on kysyttävä yksittäisiä kenttiä.

Miltä sarjallistettu PHP-data näyttää?

Serialisoidussa datassa käytetään muotoesimerkkejä: s:5: "hello" (merkkijono), i:42 (kokonaisluku), a:2:{...} (array), O:4: "User" (objekti). Numerot ilmaisevat pituuden tai lukumäärän. Muoto on tiivis, mutta ei ihmiselle luettava. Käytä työkalua, jolla voit muuntaa luettavan JSON-muodon ja PHP:n sarjallistetun muodon välillä.

Miten vianmääritys sarjallistetusta datasta tehdään?

Deserialisoi tiedot tarkastellaksesi niiden rakennetta, käytä print_r() tai var_dump() -toimintoa deserialisoituihin arvoihin, muunna JSON:ksi luettavuutta varten, tarkista, onko sarjallistaminen epätäydellistä tai korruptoitunutta, tarkista objektien luokkien saatavuus ja käytä työkalua monimutkaisten sarjallistettujen rakenteiden visualisointiin ja ymmärtämiseen.

Voinko sarjallistaa sulkuja tai nimettömiä funktioita?

PHP:n standardisarjalointi ei tue sulkuja. Käytä tähän toiminnallisuuteen paketteja kuten Opis Closure tai Laravel's SerializableClosure. Objektien tavalliset funktiot ja metodit voidaan serialisoida, jos ne on määritelty luokissa, mutta anonyymit funktiot vaativat erityiskäsittelyä.

Mitä ovat sarjallistamisen taikamenetelmät?

__sleep() suoritetaan ennen sarjallistamista, ja se palauttaa sarjallistettavien ominaisuuksien joukon (hyödyllinen tiettyjen tietojen poissulkemiseksi). __wakeup() suoritetaan deserialisoinnin jälkeen alustusta varten. __serialize() ja __unserialize() (PHP 7.4+) tarjoavat enemmän kontrollia. Toteuta nämä mukautettua sarjallistamiskäyttäytymistä varten.

Miten siirryn serialisoidusta datasta JSONiin?

Deserialisoi olemassa olevat PHP-tiedot, muunna matriisiksi/stdClass-objekteiksi ja koodaa ne sitten JSON-koodiksi. Päivitä koodi käyttämään json_encode()/json_decode()-kohtaa serialize()/unserialize()-kohtien sijasta. JSON on turvallisempi, luettavampi ja yhteensopivampi, vaikka menetätkin yksityiset ominaisuudet ja tarkan tyypin säilymisen.

Tietoja: PHP Serializer

Sarjoita ja deserialisoi tietoja PHP:ssä helposti monipuolisella PHP Serializer- ja Deserializer-työkalullamme. Tämä online-apuohjelma on täydellinen kehittäjille, jotka haluavat muuntaa monimutkaisia tietorakenteita tallennettaviksi merkkijonoiksi ja hakea ne takaisin alkuperäiseen muotoonsa. Varmista tarkka ja tehokas tietojenkäsittely ilman ohjelmistojen asennusta. Paranna PHP-kehitystyönkulkuasi tämän käyttäjäystävällisen ja luotettavan työkalun avulla.