Satır sonları olmadan bir dize, sonuç sıkıştırarak?

3 Cevap php

Ben, kısa bir sürümüne herhangi bir dize sıkıştırmak için çalışıyor herhangi bir satır sonlarını içermeyen macun mümkün sıkıştırılmış dize kopya ediyorum.

Ben gzcompress çalıştı, ama sonra / "Warning: gzuncompress (): veri hatası" atıyor farklı bir php komut dosyası içine sonucu yapıştırarak ve gzuncompress çalışıyor kopya

Bir dize sıkıştırır herhangi bir yerli php fonksiyonu var mı, ve sonuç herhangi bir satır sonları olmadan bir dize?

Teşekkürler.

3 Cevap

Sen base64_encode / base64_decode deneyebilirsiniz. Eğer kesme ve yapıştırma için ikili sıkıştırma ediyorsanız, ben önce onu kodlamak base64 öneririm.

Eğer sıkıştırarak sonra bir satır sonu kaçış: senin dize çalıştırmak gzcompress (), sıkıştırılmış sonucu bilinen 2 karakter çifti ile line-sonları değiştirin. ), sıkıştırmasını satır sonları ile bilinen 2 karakter çiftini değiştirin, sonra (gzuncompress çalıştırmak için ...

Aslında, size 2 yedek gerçekleştirmek gerekir. i ingilizce (benim anadil), bu ifade edemez, çünkü burada bir örnek: line-sonları kaçmak için '+ n' kullanın. bir 'n' izlerse sıkıştırmayı zaman yanlışlıkla bir çizgi-break ile değiştirilecektir beri ilk, her '+' tek başına ayakta hangi kaçmak gerekir; en '+ kaçan' + + 'seçti izin. ardından '+ n' ile line-sonları değiştirin. sıkıştırmayı zaman, '+' ile, bir satır ara ile daha sonra her '+ +' çift her '+ n' çiftini değiştirin. işte bu!

Her zaman giriş çıkış daha kısa üreten bir genel sıkıştırma algoritması tasarım imkansız. Her zaman girişi daha kısa çıktısını istiyorsanız Yani, sizin algoritma ne yapabilirim kısıtlayan başlamak gerekir. Sen karakter girişi (uzun) dize kabul olduğu hakkında ve karakterleri çıkışı (kısa) dize kabul hangi düşünmek gerekir. Bu iyi bir fikir edindikten sonra, sizin seçenekleri nelerdir dışarı çalışmaya başlayabilirsiniz.