Razčlenjevanje binarne datoteke v PHP-ju

Datoteke binarnih kodnih podatkov se uporabljajo za programiranje v znanstveno uporabljenih programskih jezikih nizke ravni, kot je C, ki jih ni mogoče usklajeno prevesti v besedilno obliko.

Z uporabo katerega koli jezika nizke ravni za shranjevanje dane vrednosti je treba binarno kodo uporabiti, ko jo naložite v urejevalnik besedila, da jo posnamete ali preberete.

Binarne datoteke ni mogoče brati, saj je v surovi binarni obliki v jezikih, kot je Pascal. Zato spletni skrbniki uporabljajo PHP za branje in pisanje datotek kot besedila. Za pridobitev vrednosti morate uporabiti posebno funkcijo.

PHP uporablja edinstveno funkcijo, imenovano unpack (). Po deklaraciji prvega podatkovnega tipa morate obnoviti in ustvariti drugi argument kot niz, iz katerega želite pridobiti podatke. Izterljivi podatki morajo biti v simbolnih argumentih.

Če uporabljate jezike nizke ravni, kot sta C ali Pascal, je običajen postopek shranjevanja podatkov v binarni datoteki (zapis, ki ga ni mogoče prevesti v besedilo).

Če želite uporabiti jezik C, če želite shraniti vrednost 500 v datoteko, bo koda naslednja:

 #include int main () {int val = 500; DATOTEKA * fp = fopen ("datoteka", "wb"); fwrite (& val, sizeof (int), 1, fp); // shranimo val v "datoteko" fclose (fp); return 0; } 

Ko odprete to datoteko z urejevalnikom besedila, se vam bo morda zdela neberljiva, ker vaša vrednost ni shranjena kot besedilo, temveč v binarni obliki.

Če pa uporabljate PHP, je pogosto potrebno občasno pridobivati ​​vrednosti, shranjene kot binarne. Vendar PHP bere in piše v datotekah kot besedilo. Za pridobitev vrednosti morate uporabiti posebno funkcijo.

Rešitev:

Funkcijo unpack () lahko uporabimo za reševanje te vrste težav. Najprej morate navesti vrsto podatkov, ki jih želite obnoviti, in nato niz, iz katerega želite pridobiti podatke.

Vrsta podatkov, ki jih je treba izterjati, mora biti podrobno opisana z ustreznim simbolom. Če želite na primer pridobiti podpisano celo število, uporabite znak i .

Če torej uporabimo datoteko, ki smo jo shranili v zgornjem primeru, je tukaj koda za pridobitev naše vrednosti:

    • Pomembne opombe:
  • Velikost podatkov se lahko spremeni glede na arhitekturo procesorja (Sparc, ARM, PowerPC).
    • Program, napisan v C, uporablja cela števila različnih velikosti od 32-bit do 64 bitov.
    • Razporeditev podatkov morda ni ista. Nekateri stroji shranjujejo podatke v Big Endian, drugi v Little Endian.
    • Velikost podatkov se lahko razlikuje glede na prevajalnik
    • Funkcija unpack vrne matriko nekoliko bolj podrobno kot tista, ki je podana kot primer tukaj. V našem primeru, z eno zahtevano vrednostjo, je naša vrednost v odmiku 1 matrike.
  • Tipi podatkov za 32-bitni računalnik
    • Tu je tabela, ki prikazuje podatke, ki jih je zabeležil program C, preveden za 32-bitni računalnik:
    • char : c
    • nepodpisani char : C
    • kratek : s
    • nepodpisano kratko : S
    • int : I
    • nepodpisan int : L
    • plovec : f
    • dvojna : d

Prejšnji Članek Naslednji Članek

Top Nasveti