PHP Serializer
PHP Serileştiricimize hoş geldiniz. PHP verilerini kolayca serileştirin ve serileştirmeyi çözün. Bu araç, karmaşık veri yapılarını saklanabilir dizelere dönüştürüp özgün biçimlerine geri almak isteyen geliştiriciler için idealdir.
PHP Serializer ne yapar
PHP Serializer, JSON verilerini PHP'ın serialize() biçimindeki dizge formatına dönüştürür ve serileştirilmiş dizgeleri biçimlendirilmiş JSON verilerine geri dönüştürür. Serileştirilmiş biçimde dizge uzunlukları bayt cinsinden sayılır; bu nedenle aksanlı harfler içeren bir değerin uzunluğu karakter sayısından fazladır.
Serileştirme çözme işlemi hiçbir zaman sınıflarınızın nesnelerini oluşturmaz: bir nesne, sınıf adı __PHP_Incomplete_Class_Name içinde korunarak __PHP_Incomplete_Class olarak geri döner; bu da güvenilmeyen girdinin kod çalıştırmasını önler. JSON nesneleri, anahtarları dizge olan PHP dizilerine dönüşür.
Çözümlü örnekler
JSON verilerinden serileştirilmiş dizgeye
a:4, dört öğeli bir dizidir ve her dizgenin uzunluğu bayt cinsinden belirtilir.
- Girdi
{"name": "Ada", "age": 36, "admin": true, "tags": ["php", "json"]}- Sonuç
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";}}
Serileştirilmiş dizgeden JSON verilerine
Zürich 6 harften oluşur, ancak UTF-8'de 7 bayttır; bu nedenle uzunluğu s:7 olur.
- Girdi
a:2:{s:4:"city";s:7:"Zürich";s:3:"zip";s:4:"8001";}- Sonuç
{ "city": "Zürich", "zip": "8001" }
Serileştirilmiş bir nesne
Nesne, gerçek bir stdClass örneği olarak yeniden oluşturulmaz. Sınıf adı ve özellikleri veri olarak gösterilir.
- Girdi
O:8:"stdClass":1:{s:2:"id";i:7;}- Sonuç
{ "__PHP_Incomplete_Class_Name": "stdClass", "id": 7 }
Serileştirilmiş tür kodları
| Kod | Tip | Örnek |
|---|---|---|
N | null | N; |
b | Boolean; true için 1, false için 0 | b:1; |
i | Tam sayı | i:36; |
d | Kayan noktalı sayı | d:0.5; |
s | Dizge; uzunluğu bayt cinsinden | s:3:"PHP"; |
a | Dizi; öğe sayısı ile anahtar-değer çiftleri | a:1:{i:0;s:1:"x";} |
O | Nesne; sınıf adının uzunluğu, sınıf adı ve özellik sayısı | O:8:"stdClass":0:{} |
How to Use the PHP Serializer
- Input your data into the provided field.
- 2. Adım: Veri yapısını saklanabilir bir dizeye dönüştürmek için 'Serialize' düğmesine tıklayın.
- 3. Adım: Serileştirmeyi çözmek için serileştirilmiş dizeyi girin ve özgün veri yapısına dönmek üzere 'Deserialize' düğmesine tıklayın.
Benefits of Using Our PHP Serializer
- Verimli Veri İşleme: Veri yapılarını saklanabilir biçimlere kolayca dönüştürün.
- Çok Yönlü Kullanım: Dizileri, nesneleri ve skaler türleri destekler.
- Gelişmiş İş Akışı: PHP geliştirmesinde karmaşık verileri kaydetmeyi ve almayı kolaylaştırır.
Sık sorulan sorular
PHP'de verileri nasıl serileştiririm?
PHP'de verileri serileştirmek için, verilerinizi sağlanan alana girin ve Serileştir düğmesine tıklayın. Araç, karmaşık veri yapısını saklanabilir bir dize biçimine dönüştürecektir.
PHP'de verileri nasıl deserialize edebilirim?
PHP'de veri serileştirmek için, serileştirilmiş dizeyi sağlanan alana girin ve Deserialize düğmesine tıklayın. Araç, dizeyi orijinal veri yapısına geri dönüştürecektir.
PHP'de serileştirme neden yararlıdır?
PHP'de serileştirme, karmaşık veri yapılarını saklanabilir bir biçime dönüştürerek verilerin dosyalara, veritabanlarına kaydedilmesini veya ağlar üzerinden iletilmesini kolaylaştırmak için kullanışlıdır. Serileştirme, bu verileri orijinal biçiminde almanıza ve kullanmanıza olanak tanır.
PHP'de hangi veri türleri serileştirilebilir?
PHP, diziler, nesneler ve tamsayılar ve dizeler gibi skaler türler de dahil olmak üzere çeşitli veri türlerinin serileştirilmesini destekler. Bu da onu farklı veri türlerini işlemek için çok yönlü bir araç haline getirir.
Verileri serileştirirken güvenlikle ilgili herhangi bir husus var mı?
Evet, verilerin serileştirilmesi güvenlik riskleri oluşturabilir, özellikle de serileştirilmiş veriler güvenilmeyen bir kaynaktan geliyorsa. Nesne ekleme saldırıları gibi güvenlik açıklarını önlemek için her zaman giriş verilerini doğrulayın ve sterilize edin.
Özel nesneleri serileştirebilir ve serileştirmeyi kaldırabilir miyim?
Evet, PHP özel nesneleri serileştirebilir ve serileştirmeyi kaldırabilir. Ancak, nesneleri doğru şekilde yeniden yapılandırmak için serileştirme sırasında sınıf tanımlarının mevcut olduğundan emin olun.
serialize() işlevini JSON'dan ayıran nedir?
PHP serialize() tam veri tiplerini, özel/korumalı özellikleri ve nesne sınıfı bilgilerini korur ancak sadece PHP'de çalışır. JSON dilden bağımsızdır, okunabilir, web dostudur ve tüm dillerde çalışır ancak özel özellikleri kaybeder. Yalnızca PHP'de depolama için serialize() kullanın; API'ler için JSON.
Oturumlar için serileştirmeyi nasıl kullanabilirim?
PHP, oturum verilerini ($_SESSION) istekler arasında saklamak için otomatik olarak serileştirir. Dizileri veya nesneleri oturumlarda sakladığınızda, PHP bunları dosyalara veya veritabanlarına serileştirir, ardından sonraki sayfa yüklemelerinde serileştirmeyi kaldırır. Bu, kullanıcı durumunun ve alışveriş sepetlerinin sayfa ziyaretleri boyunca korunmasını sağlar.
Serileştirilmiş veriler veritabanlarında saklanabilir mi?
Evet, serileştirilmiş verileri TEXT veya BLOB veritabanı sütunlarında saklayın. Ancak serileştirilmiş veriler verimli sorgulama, dizin oluşturma ve aramayı engeller. Tek birimler olarak depolanan nesnelerin tamamı için serileştirmeyi kullanın, ancak tek tek alanları sorgulamanız gerektiğinde JSON veya normalleştirilmiş tabloları tercih edin.
Serileştirilmiş PHP verileri neye benzer?
Serileştirilmiş veriler biçim öneklerini kullanır: s:5: "hello" (dize), i:42 (tamsayı), a:2:{...} (dizi), O:4: "User" (nesne). Sayılar uzunluğu veya sayıyı gösterir. Biçim kompakttır ancak insan tarafından okunabilir değildir. Okunabilir JSON ve PHP serileştirilmiş biçimi arasında dönüştürme yapmak için aracımızı kullanın.
Serileştirilmiş verilerde nasıl hata ayıklayabilirim?
Yapısını incelemek için verileri serileştirin, serileştirilmiş değerler üzerinde print_r() veya var_dump() kullanın, okunabilirlik için JSON'a dönüştürün, eksik serileştirme veya bozulma olup olmadığını kontrol edin, nesneler için sınıf kullanılabilirliğini doğrulayın ve karmaşık serileştirilmiş yapıları görselleştirmek ve anlamak için aracımızı kullanın.
Kapanışları veya anonim fonksiyonları serileştirebilir miyim?
Standart PHP serileştirmesi closure'ları desteklemez. Bu işlevsellik için Opis Closure veya Laravel'in SerializableClosure gibi paketleri kullanın. Nesnelerdeki normal işlevler ve yöntemler, sınıflarda tanımlanmışlarsa serileştirilebilirler, ancak anonim işlevler özel işlem gerektirir.
Serileştirme için sihirli yöntemler nelerdir?
__sleep() serileştirmeden önce çalışır ve serileştirilecek özelliklerin dizisini döndürür (belirli verileri hariç tutmak için kullanışlıdır). __wakeup() ilklendirme için serileştirmeden sonra çalışır. __serialize() ve __unserialize() (PHP 7.4+) daha fazla denetim sunar. Özel serileştirme davranışı için bunları uygulayın.
Serileştirilmiş verilerden JSON'a nasıl geçiş yaparım?
Mevcut PHP verilerini serileştirin, dizilere/stdClass nesnelerine dönüştürün, ardından JSON kodlayın. Kodu serialize()/unserialize() yerine json_encode()/json_decode() kullanacak şekilde güncelleyin. JSON daha güvenli, okunabilir ve uyumludur, ancak özel özellikleri ve tam tip korumasını kaybedersiniz.