igbinary
PHP extension提供了一個新的會話序列化/反序列化處理程序,它不同於PHP自己的實現,即php
和php_binary
。
要回答你的問題:這些處理程序根本不比較,它們完全不同。igbinary介紹記錄在項目自述文件中。
我想你問的問題,因爲你發現了兩個挺不住二進制:灌胃二進制和PHP_ 二進制。然而,這並不多說。與php_binary
處理程序先比較php
:
的php_binary
會議序列化/反序列化處理程序與默認php
處理程序幾乎相同。它們只是區分會話中的變量名是如何編碼的。
php_binary
會將所有會話變量名稱加上名稱的二進制長度。與php
同時,每個變量名的後綴爲|
字符(\x7C
,十進制124
)。據我所知,變量值的序列化完全沒有區別。
因此,php
和php_binary
處理程序之間的值的序列化是相同的。
因此,除了會話變量名稱前/後綴的細微差別之外,實際上問題是igbinary
與php序列化(會話數據中使用的)比較如何。這些差異在igbinary
readme中概述。它很好地描述了所做的事情和原因。
如果你喜歡用igbinary
系列化以及用於序列化/反序列化,擴展提供了兩個替代的功能:
igbinary_serialize
和igbinary_unserialize
- 使用像他們的堂兄弟PHP。
如果您關注某些差異的具體情況,請詢問。
感謝您的回答!不,我對igbinary的工作原理非常清楚,當我使用它時,我無法在php_binary上找到任何信息。 – Toxikman
@Toxikman:好的,那好吧。大多數文檔都在「源」:)內。在PHP手冊中,'php'和'pbp_binary'格式都沒有多少描述。您始終可以查看C源代碼和/或反向設計這些格式。 – hakre
是的,但這要比使用googling答案長10倍,然後在StackOverflow上發佈一個關於它的問題,並感謝你,現在,任何人都可以在網上找到答案。 :-) – Toxikman