Serialized PHP Object - JSON 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
How do I serialize data in PHP?
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.
How do I deserialize data in PHP?
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.
Why is serialization useful in PHP?
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.
What data types can be serialized in PHP?
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.
Verileri serileştirirken güvenlikle ilgili herhangi bir husus var mı?
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.
Can I serialize and deserialize custom objects?
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.
What's the difference between serialize() and JSON?
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.
How do I use serialization for session data?
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.
Can serialized data be stored in databases?
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.
What does serialized PHP data look like?
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.
How do I debug serialized data?
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.
Can I serialize closures or anonymous functions?
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.
What are magic methods for serialization?
__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.
How do I migrate from serialized data to JSON?
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.