Mümkün olup olmadığını herkes yapılmıştır aslında eğer, php bir nesneyi serialize ve Java (java-php iletişim) bunu nesneleştirmek, biliyor mu. Belki bir adaptör gerekli olacaktır.
Sen ne düşünüyorsun?
Teşekkürler
serialized-php-parser
, which is a Java implementation that can parse php-serialized objects. In general, if you have the choice, I wouldn't recommend php-serialized as an exchange format, because it isn't ascii-safe (It contains null-bytes). Go with a format like xml or json instead. If you need a bit of type-information, xmlrpc iyi bir seçimdir vardır. Bu php ve Java hem de iyi uygulamaları vardır.
Teorik olarak, bu kesinlikle mümkün. Bu sadece tüm sonra bayt, ve bunlar çözümlenebilir. Tabii ki, serisi nesnesi PHP yöntemlerinin herhangi biri, sadece verileri değil içerecektir. Bunu isterseniz, PHP sınıfları doğrudan karşılık Java sınıfları olarak davranışlarını yeniden olurdu.
En azından bir şartname için hiçbir link the manual yoktur - Uygulamada, asıl sorun PHP serileştirme biçimi resmen belirtilmesi görünmüyor gibi görünüyor.
Yani biçimini anlamak için kod kazmak zorunda kalabilirsiniz.
Tüm bu XML serileştirme gibi bir şey kullanmak çok daha kolay ve daha istikrarlı olacak gibi, bu sesler - Ben iki dilde bu kolaylaştırmak kütüphaneleri vardır eminim.
Sen nasılsa seri hale getirmek istediğiniz nesnenin bir parseable dize temsilini döndürür Bunun için PHP'nin var_export() fonksiyonu yararlanabilirler.
PHP serileştirme biçimi ile çalışmak için başka bir Java projesi Pherialize.
Diyelim ki böyle bir dizi seri hale diyelim:
array(3) {
[0]=>
string(8) "A string"
[1]=>
int(12345)
[2]=>
bool(true)
}
Sonra böyle Pherialize Java ile bunu unserialize yapabilirsiniz:
MixedArray list = Pherialize.unserialize(data).toArray();
System.out.println("Item 1: " + list.getString(0));
System.out.println("Item 2: " + list.getInteger(1));
System.out.println("Item 3: " + list.getBoolean(2));
Bir Java implementation of PHP var unutmayın. Yani may nesneyi tefrika ve Java PHP örneği, deserialise onu geçmek ve sonra Java altyapı içine aramak mümkün.
Tüm kutsal olmayan bir karmaşa biraz geliyor ama bakarak belki de değer!
xstream seri ve ardından serisini ur kendi php kod yazmak (okunabilir xml içine java nesneleri dönüştürür) deneyin.
Ben bu işlevsellik gerekli Drupal (PHP CMS) için bir pasajı hatırlıyorum. Sadece bu kadar Serialized drupal node objects to java (herhangi bir PHP tefrika nesne ile çalışması gerekir) bir göz atın, bulundu.
Belki bunu kullanabilirsiniz. Ben PHP'nin yeni sürümleri ile ilgili sorunlar olup olmadığını bilmiyoruz.
PHP bir nesne seri nesne özelliklerini dökümü. Sonuç dizesi korkunç karmaşık değildir.
echo serialize(
array(1, null, "mystring", array("key"=>"value"))
);
Sonuçlar:
a:4:{i:0;i:1;i:1;N;i:2;s:8:"mystring";i:3;a:1:{s:3:"key";s:5:"value";}}
Dize veri türleri, dizi uzunlukları, dizi indeksleri ve değerleri tanımlayan, dize uzunlukları ...-ters mühendislik onu ve kendi çözümleyici ile gelip çok fazla çaba almak olmaz, sanırım.
PHP / Java köprüsünü kullanarak da ilginizi çekebilir (http://php-java-bridge.sourceforge.net/). Bu protokolü kendi vardır. Kendi sitesinde bu köprünün hızlı uygulanması olduğunu söyledi.
Önceki cevaplar söylediğim gibi eğer mümkünse, ben PHP nesne serileştirme önleyeceğini. (Aslında PHP serialize () daha hızlıdır) kullanın JSON, tasarruf ya da daha evrensel bazı başka biçimi.
Eğer ben bir Jackson Module etkinleştirmek için okuma çalışan ve Java tefrika PHP yazıyorum hiçbir seçim var. Jackson büyük bir JSON ayrıştırıcı ve PHP serileştirme biçimi iyi bir uyum gibi görünüyordu oldukça benzer olduğu. Bu (yazı hala devam eden bir çalışmadır) hala tam değil.