什么是php_binary序列化处理程序?

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如何比较.

hak*_*kre 9

igbinary PHP扩展确实提供了从PHP的自己的实现,即不同的新的会话序列化/反序列化处理程序phpphp_binary.

回答你的问题:这些处理程序根本没有比较,它们完全不同.igbinary引入的差异记录在项目自述文件中.

我假设你问这个问题,因为你在两个中找到了二进制文字:ig binary和php_ binary.然而,这并没有说太多.首先phpphp_binary处理程序进行比较:

php_binary会议序列化/反序列化处理程序与默认的几乎相同的php处理程序.它们仅区分会话中的变量名称是如何编码的.

php_binary将为所有会话变量名称添加名称的二进制长度.虽然php每个变量名都有一个|字符后缀(\x7C十进制124).据我所知,变量值的序列化根本没有区别.

因此,phpphp_binary处理程序之间的值的序列化是相同的.

因此,除了会话变量名称的前/后缀的微小差别之外,问题实际上是询问如何igbinary与php序列化(在会话数据中使用)进行比较.igbinary自述文件中概述了这些差异.它很好地描述了做了什么以及为什么做.

如果您想使用igbinary序列化以及序列化/反序列化,则扩展提供两个替换功能:

igbinary_serializeigbinary_unserialize- 像他们的兄弟表兄弟一样使用.

如果您担心这些差异的某些细节,请询问.

  • 是的,但这比使用Google搜索答案要长10倍,然后通过在StackOverflow上发布一个关于它的问题,并且由于你,现在答案现在可供任何人在互联网上找到.:-) (2认同)