Php mysql kompres uygulamak için nasıl () fonksiyonu

1 Cevap php

Ben MySQL depolamak için METİN sıkıştırmak istiyorum. Yani sadece php) (gzcompress yapmak ve daha sonra mysql göndermek, ama ben de Sfenks tam metin araması kuruyorum, ve basit bir sorgu yani ile dizin doldurmak eğer olmak güzel olurdu

select uncompress(thing) from table

Ancak ben yine de oldukça mysql daha php uygulama için sıkıştırma ve açma yapmak istiyorum, ve sadece sfenks indeksleme için mysql sıkıştırmasını () işlevini kullanın.

Mysql belgeleri kendi kompres fonksiyonu hakkında şunları söylüyor:

Nonempty strings are stored as a four-byte length of the uncompressed string (low byte first), followed by the compressed string.

Yani benim soru nasıl sıkıştırılmamış dizenin bu dört bayt uzunlukta inşa edersiniz ... nedir? Bundan sonra, sıkıştırılmış BLOB sadece php gzcompress () fonksiyonu sonuçları gibi görünüyor.

1 Cevap

şimdiye kadar bu yapılabilir, ama burada bazı düşünceler vardır değil:

1) sıkıştırılmamış dize uzunluğu bulmak ... strlen () fonksiyonu çalışmak gerektiğini

2) dize sıkıştırmak ... zaten bu parçayı yaptık

3) mysql istediği gibi sayı biçimlendirme, mysql depolama için birlikte hem paketi:

PHP'nin pack function: Eğer (imzasız uzun ... 32 bit, kıymetsiz bayt baştadır) uzunluğu için biçim değer "V" kullanmak gerekir gibi geliyor