JSON Object - Serialized PHP Object Dönüştürücü
Çok yönlü PHP Serileştirici ve Serileştirme Çözücü aracımızla PHP verileri kolayca serileştirin ve serileştirmeyi çözün. Bu çevrimiçi araç, karmaşık veri yapılarını saklanabilir dizelere dönüştürmek ve bunları özgün biçimlerine geri almak isteyen geliştiriciler için idealdir. Herhangi bir yazılım yüklemeden verileri doğru ve verimli bir şekilde işleyin. Kullanıcı dostu ve güvenilir bu araçla PHP geliştirme iş akışınızı iyileştirin.
Sık sorulan sorular
PHP verilerini serileştirmek için veri yapınızı (dizi, nesne veya skaler değer) sağlanan alana girin ve Serileştir düğmesine tıklayın. Araç, karmaşık veri yapılarını PHP serileştirme protokolünü kullanarak saklanabilir bir dize biçimine dönüştürür. Böylece dosyalara veya veritabanlarına kaydedilebilecek ya da ağlar üzerinden aktarılabilecek bir gösterim oluşturur.
PHP verilerinin serileştirmesini çözmek için serileştirilmiş dizeyi (genellikle a:, s: veya O: gibi biçim göstergeleriyle başlar) sağlanan alana girin ve Serileştirmeyi Çöz düğmesine tıklayın. Araç, diziyi özgün veri yapısına dönüştürerek dizileri, nesneleri ve değerleri serileştirme öncesindeki hâlleriyle yeniden oluşturur.
Serileştirme, karmaşık veri yapılarını saklanabilir dizelere dönüştürür; böylece veriler dosyalarda veya veritabanlarında kalıcı olarak saklanabilir, ağlar üzerinden aktarılabilir, oturum verisi olarak tutulabilir ve önbelleğe alınabilir. Ayrıca mesaj kuyruğu yüklerinin saklanmasını ve istekler arasında nesne durumunun korunmasını sağlar. Serileştirme çözme, verilerin kullanılmaya devam edilebilmesi için özgün hâlini geri getirir.
PHP; dizeleri, tam sayıları, kayan noktalı sayıları, boole değerlerini, dizileri, nesneleri ve NULL değerlerini serileştirir. Dizi anahtarlarını, nesne özelliklerini (public, protected, private), iç içe yapıları ve veri türlerini korur. Ancak kaynaklar (veritabanı bağlantıları veya dosya tanıtıcıları gibi) serileştirilemez ve özel işlem gerektirir.
Evet, güvenilmeyen verilerin serileştirmesi çözülürken PHP nesne enjeksiyonu saldırıları gerçekleşebilir. Saldırganlar, sihirli yöntemler (__wakeup, __destruct) aracılığıyla kod çalıştırılmasını tetikleyen kötü amaçlı serileştirilmiş dizeler hazırlayabilir. Kullanıcı girdilerini veya harici verileri doğrulamadan asla serileştirmeyi çözmeyin. Güvenilmeyen veriler için JSON kullanın veya allowed_classes kısıtlamalarını uygulayın.
Evet, PHP özel nesneleri tüm özelliklerini ve değerlerini koruyarak serileştirir. Ancak nesnelerin doğru şekilde yeniden oluşturulması için serileştirme çözülmeden önce sınıf tanımlarının yüklenmiş olması gerekir. Otomatik yükleme kullanın, sınıf dosyalarını dahil edin ya da özel serileştirme davranışı için __sleep() ve __wakeup() sihirli yöntemlerini uygulayın.
PHP serialize(), tam veri türlerini, private/protected özellikleri ve nesne sınıfı bilgilerini korur ancak yalnızca PHP'de çalışır. JSON dilden bağımsızdır, okunabilir ve web kullanımına uygundur; tüm dillerde çalışır ancak private özellikleri kaybeder ve PHP türlerini tam olarak korumaz. Yalnızca PHP için depolamada serialize() kullanın; API'ler ve birlikte çalışabilirlik için JSON tercih edin.
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, sonraki sayfa yüklemelerinde ise serileştirmeyi çözer. Böylece kullanıcı durumu, alışveriş sepetleri ve kimlik doğrulaması sayfa ziyaretleri arasında korunur.
Evet, serileştirilmiş verileri TEXT veya BLOB veritabanı sütunlarında saklayabilirsiniz. Ancak serileştirilmiş veriler verimli sorgulamayı, dizinlemeyi ve aramayı engeller. Tek parça olarak saklanan nesneler için serileştirme kullanın; tek tek alanları sorgulamanız veya veri ilişkilerini korumanız gerektiğinde ise JSON ya da normalleştirilmiş tabloları tercih edin.
Serileştirilmiş veriler biçim önekleri kullanır: s:5:"hello" (dize), i:42 (tam sayı), a:2:{...} (dizi), O:4:"User" (nesne). Sayılar uzunluğu veya öğe sayısını belirtir. Biçim kısa olsa da insanlar tarafından kolayca okunamaz. Hata ayıklama ve veri işleme için okunabilir JSON ile PHP serileştirilmiş biçim arasında dönüştürme yapmak üzere aracımızı kullanın.
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.
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.
__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(), başlatma işlemi için serileştirme çözme sonrasında çalışır. __serialize() ve __unserialize() (PHP 7.4+) daha fazla denetim sağlar. Sınıflarınızda özel serileştirme davranışları uygulamak için bunları kullanın.
Mevcut PHP verilerinin serileştirmesini çözün, dizilere/stdClass nesnelerine dönüştürün ve ardından JSON ile kodlayın. Kodu, serialize()/unserialize() yerine json_encode()/json_decode() kullanacak şekilde güncelleyin. JSON daha güvenli, okunabilir ve uyumludur; ancak serileştirmenin sağladığı private özellikleri ve türlerin eksiksiz korunmasını kaybedersiniz.