Lewati ke konten
Alat Serialisasi PHP

PHP Serializer

Selamat datang di Serializer PHP kami. Serialisasikan dan deserialisasikan data dalam PHP dengan mudah. Alat ini cocok bagi pengembang yang ingin mengonversi struktur data kompleks menjadi string yang dapat disimpan, lalu mengembalikannya ke bentuk semula.

Fungsi PHP Serializer

PHP Serializer mengonversi JSON ke format string serialize() milik PHP, lalu mengubah string terserialisasi kembali menjadi JSON berformat. Panjang string dalam bentuk terserialisasi dihitung dalam byte, sehingga nilai dengan huruf beraksen memiliki panjang lebih besar daripada jumlah karakternya.

Unserialisasi tidak pernah membuat objek dari kelas Anda: objek akan kembali sebagai __PHP_Incomplete_Class dengan nama kelasnya tersimpan di __PHP_Incomplete_Class_Name, sehingga input yang tidak tepercaya tidak dapat menjalankan kode. Objek JSON menjadi array PHP dengan kunci string.

Contoh yang dikerjakan

JSON menjadi string terserialisasi

a:4 adalah array dengan empat entri, dan setiap string menyertakan panjangnya dalam byte.

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

String terserialisasi menjadi JSON

Zürich memiliki 6 huruf, tetapi 7 byte dalam UTF-8, jadi panjangnya s:7.

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

Objek terserialisasi

Objek tersebut tidak dibangun kembali sebagai instans stdClass yang sebenarnya. Nama kelas dan propertinya ditampilkan sebagai data.

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

Kode tipe terserialisasi

KodeJenisContoh
NnullN;
bBoolean, 1 untuk true dan 0 untuk falseb:1;
iBilangan bulati:36;
dBilangan titik mengambangd:0.5;
sString, dengan panjang dalam bytes:3:"PHP";
aArray, dengan jumlah entri serta pasangan kunci dan nilaia:1:{i:0;s:1:"x";}
OObjek, dengan panjang nama kelas, nama kelas, dan jumlah propertiO:8:"stdClass":0:{}

How to Use the PHP Serializer

  1. Input your data into the provided field.
  2. Langkah 2: Klik tombol 'Serialize' untuk mengonversi struktur data menjadi string yang dapat disimpan.
  3. Langkah 3: Untuk melakukan deserialisasi, masukkan string yang telah diserialisasi, lalu klik tombol 'Deserialize' untuk mengembalikannya ke struktur data semula.

Benefits of Using Our PHP Serializer

  • Penanganan Data Efisien: Konversikan struktur data dengan mudah ke format yang dapat disimpan.
  • Penggunaan Serbaguna: Mendukung array, objek, dan tipe skalar.
  • Alur Kerja yang Lebih Baik: Mempermudah penyimpanan dan pengambilan data kompleks dalam pengembangan PHP.

Pertanyaan yang sering diajukan

Bagaimana cara menserialisasikan data dalam PHP?

Untuk membuat serialisasi data dalam PHP, masukkan data Anda ke dalam bidang yang tersedia dan klik tombol Serialize. Alat ini akan mengubah struktur data yang kompleks menjadi format string yang dapat disimpan.

Bagaimana cara melakukan deserialisasi data di PHP?

Untuk melakukan deserialisasi data dalam PHP, masukkan string serial ke dalam bidang yang disediakan dan klik tombol Deserialize. Alat ini akan mengubah string kembali ke dalam struktur data aslinya.

Mengapa serialisasi berguna dalam PHP?

Serialisasi dalam PHP berguna untuk mengubah struktur data yang kompleks menjadi format yang dapat disimpan, sehingga lebih mudah untuk menyimpan data ke file, database, atau mengirimkannya melalui jaringan. Deserialisasi memungkinkan Anda untuk mengambil dan menggunakan data ini dalam bentuk aslinya.

Tipe data apa saja yang dapat diserialisasikan dalam PHP?

PHP mendukung serialisasi berbagai tipe data, termasuk larik, objek, dan tipe skalar seperti bilangan bulat dan string. Hal ini menjadikannya alat serbaguna untuk menangani berbagai jenis data.

Apakah ada pertimbangan keamanan saat melakukan deserialisasi data?

Ya, melakukan deserialisasi data dapat menimbulkan risiko keamanan, terutama jika data yang diserialisasi berasal dari sumber yang tidak tepercaya. Selalu validasi dan bersihkan data masukan untuk mencegah kerentanan keamanan seperti serangan injeksi objek.

Dapatkah saya melakukan serialisasi dan deserialisasi objek khusus?

Ya, PHP dapat melakukan serialisasi dan deserialisasi objek khusus. Namun, pastikan bahwa definisi kelas tersedia ketika melakukan deserialisasi untuk merekonstruksi objek dengan benar.

Apa yang membedakan serialize() dengan JSON?

PHP serialize() mempertahankan tipe data yang tepat, properti privat/terlindungi, dan informasi kelas objek, tetapi hanya bekerja di PHP. JSON bersifat bahasa-agnostik, mudah dibaca, ramah web, dan bekerja di semua bahasa tetapi kehilangan properti privat. Gunakan serialize() untuk penyimpanan khusus PHP; JSON untuk API.

Bagaimana cara menggunakan serialisasi untuk sesi?

PHP secara otomatis men-serialisasi data sesi ($_SESSION) untuk penyimpanan di antara permintaan. Ketika Anda menyimpan array atau objek dalam sesi, PHP men-serialisasikannya ke file atau basis data, kemudian melakukan deserialisasi pada pemuatan halaman berikutnya. Hal ini memungkinkan untuk mempertahankan status pengguna dan keranjang belanja di seluruh kunjungan halaman.

Dapatkah data berseri disimpan dalam database?

Ya, simpan data berseri dalam kolom basis data TEXT atau BLOB. Namun, data yang diserialisasi mencegah kueri, pengindeksan, dan pencarian yang efisien. Gunakan serialisasi untuk objek lengkap yang disimpan sebagai unit tunggal, tetapi lebih memilih JSON atau tabel yang dinormalisasi saat Anda perlu melakukan kueri pada setiap bidang.

Seperti apa bentuk data PHP yang diserialisasikan?

Data berseri menggunakan awalan format: s:5: "halo" (string), i:42 (bilangan bulat), a:2:{...} (larik), O:4: "Pengguna" (objek). Angka menunjukkan panjang atau jumlah. Formatnya ringkas namun tidak dapat dibaca manusia. Gunakan alat kami untuk mengonversi antara JSON yang dapat dibaca dan format serial PHP.

Bagaimana cara men-debug data berseri?

Deserialisasi data untuk memeriksa strukturnya, gunakan print_r () atau var_dump () pada nilai yang telah dideserialisasi, konversikan ke JSON agar mudah dibaca, periksa serialisasi yang tidak lengkap atau kerusakan, verifikasi ketersediaan kelas untuk objek, dan gunakan alat bantu kami untuk memvisualisasikan dan memahami struktur serial yang kompleks.

Dapatkah saya membuat serialisasi penutupan atau fungsi anonim?

Serialisasi PHP standar tidak mendukung penutupan. Gunakan paket seperti Opis Closure atau SerializableClosure dari Laravel untuk fungsi ini. Fungsi dan metode biasa dalam objek dapat diserialisasi jika didefinisikan dalam kelas, tetapi fungsi anonim memerlukan penanganan khusus.

Apa yang dimaksud dengan metode ajaib untuk serialisasi?

__sleep() berjalan sebelum serialisasi, mengembalikan larik properti untuk diserialisasi (berguna untuk mengecualikan data tertentu). __wakeup() berjalan setelah deserialisasi untuk inisialisasi. __serialize() dan __unserialize() (PHP 7.4+) menawarkan lebih banyak kontrol. Terapkan ini untuk perilaku serialisasi khusus.

Bagaimana cara melakukan migrasi dari data terserialisasi ke JSON?

Deserialisasi data PHP yang ada, ubah menjadi array/objek stdClass, lalu encode JSON. Perbarui kode untuk menggunakan json_encode()/json_decode(), bukan serialize()/unserialize(). JSON lebih aman, mudah dibaca, dan kompatibel, meskipun Anda akan kehilangan properti privat dan pelestarian tipe yang tepat.

Tentang PHP Serializer

Serialisasikan dan deserialisasikan data dalam PHP dengan mudah menggunakan alat Serializer dan Deserializer PHP serbaguna kami. Utilitas online ini cocok bagi pengembang yang ingin mengonversi struktur data kompleks menjadi string yang dapat disimpan, lalu mengembalikannya ke bentuk semula. Pastikan penanganan data akurat dan efisien tanpa instalasi perangkat lunak. Tingkatkan alur kerja pengembangan PHP Anda dengan alat yang ramah pengguna dan andal ini.