A csomagolás és csomagold

Valószínűleg a legtöbb web programozó soha nem dolgozott közvetlenül a bináris adatokat a php.
És ez történt nem csak azért, leggyakrabban bináris feldolgozó vállalja különböző kiterjesztések vagy könyvtárakban. Gyakrabban ez kapcsolódik az a tény, hogy az információ az interneten nem nagyon, és hogy van - nehéz megérteni, és messze az igények egy adott fejlesztő.
Az olvasás és írás bináris adatokat php, két hasznos funkciók:
A csomag funkció csomag az adatokat a formátum által igényelt maszk, és adja meg a kimeneti string bináris formátumban.
unpack funkció elvégzi a fordított átalakulás. Azt várja, hogy a bemeneti karakterlánc egy bináris formátumot és a kimeneti ad egy sor olyan formátumú adatok ismerős számunkra.
Ahhoz, hogy megértsük, hogyan lehet tömöríteni adatokat, akkor kell, hogy olvassa el, hogyan tároljuk az adatokat a memóriában. Például a C programozási nyelv tanfolyam.
Előnyt bináris adat
Tegyük fel, hogy: Meg kell írni a fájlt szám nullától 256 Fontos, hogy a fájl lenne könnyen olvasható programok más nyelven, és az lenne a mérete is kis helyet foglal.
adatok írása
A hagyományos módon, mi volna fel valamit, mint ez:
Zapakovyvaya minden byte egyénileg, akkor megtette volna:
Most hasonlítsd össze a méret a keletkező fájl:
Ie fájlba, ahol tele minden érték alacsonyabb bájt, majdnem háromszor kisebb, mint a fájlt, amelyben az összes értéket vannak írva, mint egy húr.
Úgy néz ki, mint a mentett fájl a szokásos módon:
És ebben a fájlban értékek csomagolva char:
Figyelmes fejlesztő azonnal vegye figyelembe az oka az ilyen duzzanat fájlt.
Ez minden bizonnyal a szimbólum 0A. használják a szeparátor értékek (0x0A = 10 = új sor), és hogy az egyes szimbólumok egy változóban tároljuk a bájt. Például, amikor szükség van rá, hogy a számot tárolni 248, 3 byte rögzíti 32 34 38.
adatok olvasását
Most, amikor megpróbál adatokat olvasni a fájlokat gondot okoz az olvasás a csomagolt adatokat. Mit fognak megkerülni az adatok olvasására a következő:
Ahogy talán már észre, a szolgáltatás-csomag két paramétert szükséges: format string és egy értéket, vagy több érték, amit meg kell csomagolni.
Annak érdekében, hogy értékelje a rugalmasságát adatok zapakovyvaniya próbáljuk megoldani ezt a problémát.
Meg kell végre a különböző rendszerek közötti adatcsere programok írt különböző nyelveken.
Tehát csomag egy tömb, amely szám és szöveg. Vegye figyelembe, hogy ha a számokat tudjuk a méretet, akkor is, ha azt feltételezzük, hogy a számot köteles illeszkedik a char típusú, azaz 0 256. Ezt a vonalat tartalmazhat tetszőleges számú karakter.
Az egyszerűség kedvéért feltételezzük, hogy a vonal illeszkednie kell a 256 karaktert, akkor tudjuk írni a karakterek száma a string egy char változó.
Itt van a mentett fájl
Térjünk most próbálja olvasni a fájlt
És mi lesz egy tömböt:
Mint látható, minden egyszerű, még az összetett bináris struktúrák egyszerűen szétszedhető php.