PHP - Bináris fájl létrehozása és feltöltése, hogyan?
Tudom, hogy nem a PHP a legjobb eszköz ilyenre, de ebben szeretném megvalósítani a következőt. A karakterkészletem összesen 38 karakterből áll. Ezért 1-2 bájt helyett 6 biten szeretnék szöveget tárolni. Megvan, hogy melyik bináris jelsorhoz melyik karakter szeretném tárolni, oda-vissza megy a fordítás.
A gond az, hogy a karakterláncomban az 1 és 0 karakterek ugyanúgy szövegként tárolódnak el (Windows platformon).
Az egyik megoldás, amit eddigi kutatásom alapján találtam az a fopen WB paraméterrel és fwrite-al. Ami nem tesz semmit (értsd: ugyan úgy tárolja a fájlt).
A másik az unpack volt, ami nem úgy tűnik nekem, hogy binárisan tárolható karaktersorozatot adna.
Valaki lenne olyan kedves, hogy küldene egy rövid kódot, ami átkonvertálja a karakterláncot binárissá és binárisan letárolná a fájlt?
A cél: helymegtakarítás (tömörítés).
Előre is köszönöm!
Előre leszögezem, hogy nem értek a php-hez.
Nem a kérdésre válasz, de a problémádhoz kapcsolódóan:
Jól értem-e, hogy mivel kevés karaktert használsz, ezért akarod 6 biten tárolni őket? mert ha igen, nézd meg, hogy ha normálisan stringben van a szöveg, majd azt tömöríted pl.: [link] ezzel, annak a mérete nem lesz-e jobb mint a 6bites tárolásod? majd ezt serializálnád fájlba.
A másik ami fontos lehet, az idő amit 6bitre konvertálással töltelsz, nem-e több mint a zippelés?
A harmadik: mekkora adatról van szó? mert manapság mind tárhely, mind memória nem annyira probléma, hogy ilyen pár bitekkel kelljen szöszölni.
Csak azért kérdezem, mert már csináltam én is hasonlót, amiben az jött ki, hogy nekem érdemesebb volt zippelni, mintsem saját karaktertáblát definiálni.
Az előttem szóló jól mondja.
A te 6 bites tárolási módszereddel mindössze 25 %-ot takarítasz meg, ezzel szemben huffman kompresszióval akár 90 %-ot is elérhetsz, a forrás méretéhez képest.
bzcompress(); és bzdecompress(); függvényeket ajánlom.
Hatékonyabb, és nem is kell vele küzdened. :-)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!