Binaarfaili analüüsimine PHP-s

Binaarsete koodide andmefaile kasutatakse programmeerimiseks teaduslikult kasutatud madala tasemega programmeerimiskeeles, nagu näiteks C, mida ei saa tekstivormingusse tõlgendada.

Kasutades mis tahes madala taseme keelt antud väärtuse salvestamiseks, tuleb binaarset koodi kasutada siis, kui laadite selle tekstiredaktorisse selle salvestamiseks või lugemiseks.

Binaarfaili ei saa lugeda nii, nagu see on toores binaarformaadis sellistes keeltes nagu Pascal. Seega kasutavad veebimeistrid PHP-d failide lugemiseks ja kirjutamiseks. Oma väärtuste taastamiseks tuleb kasutada konkreetset funktsiooni.

PHP kasutab unikaalset funktsiooni, mida nimetatakse lahtipakkimiseks (). Pärast esimese andmetüübi argumendi deklareerimist peate taastama ja looma teise argumendi stringina, millest soovite andmed alla laadida. Taaskasutatavad andmed peavad olema sümboolsetel argumentidel.

Madala tasemega keelte nagu C või Pascal kasutamisel on tavaline kord andmete talletamiseks binaarfaili (kirje, mida ei saa tõlkida teksti).

C-keele kasutamine, kui soovite salvestada väärtuse 500 faili, on kood järgmine:

 #include int main () {int val = 500; FILE * fp = fopen ("fail", "wb"); fwrite (& val, sizeof (int), 1, fp); // salvestage val "fail" fclose (fp); tagastamine 0; } 

Selle konkreetse faili avamisel tekstiredaktoriga võib see olla loetamatu, sest teie väärtus ei ole salvestatud tekstina, vaid binaarsel kujul.

Kuid kui kasutate PHP-d, on sageli vaja binaarina salvestatud väärtusi aeg-ajalt alla laadida. Kuid PHP loeb ja kirjutab failidena teksti. Oma väärtuste taastamiseks tuleb kasutada konkreetset funktsiooni.

Lahendus:

Sellise probleemi lahendamiseks võib kasutada funktsiooni unpack () . Kõigepealt tuleb deklareerida andmete tüüp, mida soovite taastada, ja seejärel string, kust soovite andmed alla laadida.

Taaskasutatavate andmete liik peab olema üksikasjalik, kasutades vastavat sümbolit. Näiteks allkirjastatud täisarvu allalaadimiseks kasutage i märki.

Nii et kui me kasutame ülaltoodud näites salvestatud faili, siis siin on meie väärtuse hankimiseks kasutatav kood:

    • Olulised märkused:
  • Andmete suurus võib muutuda sõltuvalt protsessori arhitektuurist (Sparc, ARM, PowerPC).
    • C-s kirjutatud programm kasutab erineva suurusega täisarvusid alates 32-bitist kuni 64-bitist.
    • Andmete paigutus ei pruugi olla sama. Mõned masinad säilitavad andmeid Big Endianis, teised Little Endianis.
    • Andmete suurus võib sõltuvalt kompilaatorist erineda
    • Pakkimisfunktsioon tagastab massiivi veidi üksikasjalikumalt, mis on siin toodud näites. Meie puhul on ühe väärtusega meie väärtus massiivi 1 nihkes.
  • 32-bitise arvuti andmetüübid
    • Siin on tabel, mis näitab 32-bitise arvuti jaoks koostatud C-programmi salvestatud andmeid:
    • c: c
    • allkirjastamata char : C
    • lühike : s
    • allkirjastamata lühike : S
    • int : I
    • allkirjastamata int : L
    • float : f
    • kahekordne : d

Eelmine Artikkel Järgmine Artikkel

Top Näpunäited