Stu*_*Stu 8 php serialization igbinary
当我从CLI执行phpinfo()或php -i时,我得到以下输出:
session
Registered save handlers => files user sqlite memcached
Registered serializer handlers => php php_binary wddx
Run Code Online (Sandbox Code Playgroud)
我不知道PHP序列化支持二进制格式,并且文档中似乎没有任何关于它的内容.
我打算使用igbinary进行会话序列化到memcached服务器,所以我想知道php_binary如何比较.
在igbinary PHP扩展确实提供了从PHP的自己的实现,即不同的新的会话序列化/反序列化处理程序php和php_binary.
回答你的问题:这些处理程序根本没有比较,它们完全不同.igbinary引入的差异记录在项目自述文件中.
我假设你问这个问题,因为你在两个中找到了二进制文字:ig binary和php_ binary.然而,这并没有说太多.首先php与php_binary处理程序进行比较:
该php_binary会议序列化/反序列化处理程序与默认的几乎相同的php处理程序.它们仅区分会话中的变量名称是如何编码的.
php_binary将为所有会话变量名称添加名称的二进制长度.虽然php每个变量名都有一个|字符后缀(\x7C十进制124).据我所知,变量值的序列化根本没有区别.
因此,php和php_binary处理程序之间的值的序列化是相同的.
因此,除了会话变量名称的前/后缀的微小差别之外,问题实际上是询问如何igbinary与php序列化(在会话数据中使用)进行比较.igbinary自述文件中概述了这些差异.它很好地描述了做了什么以及为什么做.
如果您想使用igbinary序列化以及序列化/反序列化,则扩展提供两个替换功能:
igbinary_serialize和igbinary_unserialize- 像他们的兄弟表兄弟一样使用.
如果您担心这些差异的某些细节,请询问.