2013-10-21 731 views
4

我正在尋找一種解決方案來在JavaScript中壓縮字符串,使用GET(jsonp)發送它,並使用PHP解壓縮。最好的辦法是有快速的代碼和良好的壓縮。我發現lz-string庫,但看起來它沒有PHP後端。任何其他類似的庫或LZ字符串的PHP實現?JavaScript字符串壓縮+ PHP解壓縮

+1

爲什麼不只是通過瀏覽器使用正常的gzip壓縮? – feeela

+0

使用PHP,您可以嘗試gzdeflate函數。 –

回答

0

至於客戶端JavaScript壓縮檢查該放氣實現:

https://github.com/dankogai/js-deflate

要解壓縮PHP端你需要的是gzinflate()

陷阱

  1. 如果您想將來自客戶端的壓縮數據發佈到serv呃,它可能是一個好主意,首先base64編碼。 在服務器端,你將不得不調用gzinflate(base64_decode($ post_body));

  2. JavaScript deflate實現或PHP充氣實現不是100%正確的,有時很少gzinflate會返回錯誤。這意味着如果你沿着這條路走下去,你應該有一些回退機制,比如:嘗試發佈壓縮數據。如果失敗回退到未壓縮的數據。

  3. 保持壓縮級別或你們必然要碰到的JavaScript超時錯誤

  4. 如果你打算壓縮大量的數據(100 + KB),也許在老的瀏覽器(即< = 9),你需要拆分主deflate循環,以便它異步(使用setTimeout)一次處理更小的數據塊。理想情況下,每個塊不應該讓JS解釋器忙於超過100毫秒,否則您會降低UI響應度或運行到醜陋的JS超時彈出錯誤。

1

您可以嘗試 - http://rosettacode.org/wiki/LZW_compression它已在JavaScript,PHP和其他語言實現。

+0

注意:在執行解壓縮時出現錯誤:它應該是$ w。 $ entry [0],而不是$ w + $ entry [0] – IARI

+1

aaw還有更多的錯誤... -.-糟糕的工作誰編碼 – IARI