有没有人知道是否有可能,实际上如果已经完成,在PHP中序列化一个对象并在Java中反序列化它(java-php通信).也许需要一个适配器.
你怎么看?
谢谢
有serialized-php-parser
一个Java实现可以解析php序列化的对象.一般来说,如果你有选择,我不建议使用php-serialized作为交换格式,因为它不是ascii-safe(它包含空字节).改为使用xml或json等格式.如果您需要一些类型信息,xmlrpc是一个不错的选择.它有很好的php和Java实现.
PHP和Java都使用自己的(明显不同的)序列化方案.但是,您可以使用可以读写的交换格式.
最明显的两个例子是XML和JSON.
还有其他一些如Google Protocol Buffers.
另一个使用PHP序列化格式的Java项目是Pherialize.
假设您正在序列化这样的数组:
array(3) { [0]=> string(8) "A string" [1]=> int(12345) [2]=> bool(true) }
然后你可以用Pherialize在Java中反序列化它,如下所示:
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));
从理论上讲,这当然是可能的.毕竟它只是字节,可以解析它们.当然,反序列化的对象只包含数据,而不包含任何PHP方法.如果需要,您必须将行为重写为直接与PHP类对应的Java类.
在实践中,主要问题似乎是PHP序列化格式似乎没有正式指定 - 至少没有链接到手册中的规范.
因此,您可能需要深入了解代码以了解格式.
总而言之,使用像XML序列化这样的东西听起来会更容易和更稳定 - 我确信这两种语言都有可以实现这一目标的库.
该JSON格式将是一个良好的开端.有Java,PHP和许多其他语言的实现.
虽然最初基于javascript对象文字表示法,但JSON证明了在所有类型的系统之间轻量级数据传输的便利性.