PHP的LZF壓縮擴展工具

此次爲你們帶來的是另一個 PHP 的壓縮擴展,固然也是很是冷門的一種壓縮格式,因此使用的人會比較少,並且在 PHP 中提供的相關的函數也只是對字符串的編碼與解碼,並無針對文件的操做。所以,就像 Bzip2 同樣,咱們也能夠用它來進行一些加密傳輸的操做。php

LZF 擴展直接在 phar.php.net 下載安裝便可,也是走得正常的 PHP 的擴展安裝的步驟。LZF 壓縮算法基於 Lempel-Ziv ,並使用了有限狀態熵編碼。LZF採用相似 lz77 和 lzss 的混合編碼。使用3種 「起始標記」 來表明每段輸出的數據串。關於 LZF 壓縮的信息很是少,僅有的查詢結果顯示是它是 Apple 開源的一種很是簡單的字符壓縮算法。html

基本函數使用

$str = "The 2014 World Cup will be hold in .It is a grand occasion for all the football fans all over the world.My favorite team is the Spainish Team.And my favorite football star is Didier Yves Drogba Tébily.I hope the Chinese Tee
am can do well in the World Cup.Because China has never won a World Cup before.This year I hope the situation will change.


When the match begins, I hope I can watch it.But if I am busy studying thenn
 I will not watch it.Because study is always the first priority.I wish one day China can hold a World Cup, then our Chinese can watch the matches withouu
t going abroad.


Maybe one day my dream can come true.";

$c = lzf_compress($str);
echo $c, PHP_EOL;
// The 2014 World Cup will be ho in .It is a grand occasion for a *t Bfootb@
//                                                                          fan * over`w@X.My
// vorite team@Q@8    Spainish T .A _m�)�Vstar@2Didi WYves Drogba Tébily.I �p \ �Chchange.     can do we � �@��.Becau )@1a has ne@�w �a�'! �e.Thye ��msituatAa9


// When`omatch Cgins,�;I`�w`it.Bu!ff !busy �udying@Bn `]not�2��s@)Aalways@0     first priAsAwAeone day��Aa��� �!"n our`%AG@'�� ��!witho �go@�abroad@�May"=�i!�dr!�`Dcom!�rue.

$v = lzf_decompress($c);
echo $v, PHP_EOL;
// The 2014 World Cup will be hold in .It is a grand occasion for all the football fans all over the world.My favorite team is the Spainish Team.And my favorite football star is Didier Yves Drogba Tébily.I hope the Chinese Team can do well in the World Cup.Because China has never won a World Cup before.This year I hope the situation will change.


// When the match begins,I hope I can watch it.But if I am busy studying then I will not watch it.Because study is always the first priority.I wish one day China can hold a World Cup,then our Chinese can watch the matches without going abroad.

echo lzf_optimized_for(), PHP_EOL;
// 1
// 若是LZF針對速度進行了優化,則返回1;對於壓縮,則返回0。

LZF 所有就只提供了這三個很是簡單的函數。lzf_compress() 用於對字符串進行壓縮編碼,能夠看出咱們輸出的壓縮以後的內容已經變成了亂碼的形式。可是相對於 Bzip2 徹底看不懂的編碼內容來講,LZF 是能夠看到原文的一部份內容的。lzf_decompress() 用於解碼已經編碼的字符串內容。lzf_optimized_for() 輸出的是 LZF 擴展的編譯後運行狀態,若是返回的是 1 ,則代表針對當前系統的速度進行了優化,若是返回的是 0 ,表示的是僅僅是進行了壓縮編碼。git

中文支持

$str = "現在咱們站長作網站會愈來愈多的選擇服務器,而不是虛擬主機。可是在選擇服務器以後,咱們大部分網友會直接使用寶塔面板、LNMP等一鍵安裝WEB系統去配置網站環境。有些軟件確實是在不斷的升級和維護且安全功能作的不錯,可是有些可能尚未考慮到安全問題。

由於大部分軟件提供商都更多的考慮到功能,對於細節的安全作的仍是不夠的,好比前一段時間因爲THINKPHP框架的漏洞致使安裝THINKPHP的程序被黑,同時也影響到同一臺服務器中的其餘網站也有被黑掉,因此對於安全問題仍是須要單獨的處理";

$c = lzf_compress($str);
echo $c, PHP_EOL;
// 現在咱們站長作網
//                 會越來 多的選擇服務器,而不��虛擬主機。但 在�2以後 8�大部分 q有些軟件� 5���@��� �升級和維護且 全功能A系統去配置 H �環境 �
//                                         �� ,錯 ��ՀS可  還沒考慮到�>問題 �

// 由於�逋提供商都更�^�C`| p
//                          對於細節 ��[��@y�� �夠  好比前!!
// THINKPHP框架 .                                           段時間由 A
//               漏洞致使 U!J�"
//                              程序被黑 W同 也影響@��!��臺�
// �aL��他�=��A`D掉 G因此�� s!d�%��
//                                 須要單獨 �處理�

$v = lzf_decompress($c);
echo $v, PHP_EOL;
// 現在咱們站長作網站會愈來愈多的選擇服務器,而不是虛擬主機。可是在選擇服務器以後,咱們大部分網友會直接使用寶塔面板、LNMP等一鍵安裝WEB系統去配置網站環境。有些軟件確實是在不斷的升級和維護且安全功能作的不錯,可是有些可能尚未考慮到安全問題。

// 由於大部分軟件提供商都更多的考慮到功能,對於細節的安全作的仍是不夠的,好比前一段時間因爲THINKPHP框架的漏洞致使安裝THINKPHP的程序被黑,同時也影響到同一臺服務器中的其餘網站也有被黑掉,因此對於安全問題仍是須要單獨的處理

固然,LZF 對中文也是良好支持的。一樣的在編碼後的內容中也是有部份內容是可見的。github

總結

所有下來就只有這三個函數的一個壓縮算法的擴展,是否是很是的簡單方便。就像上面所說的,一是對於字符串的存儲節約空間,二是能夠作爲某些傳輸的加密實現。固然,這個算法並非徹底的編碼,因此咱們仍是可以看到原文的內容的。其實從這方面咱們能夠和 Bzip2 對比下,Bzip2 是二進制編碼的,因此編碼後的內容是徹底亂碼的。而 LZF 是非二進制的,採用一種熵算法的壓縮算法,天然會有不少內容是肉眼可見的。最終,仍是要取決於咱們的業務形態來決定採用哪一種具體的壓縮擴展工具。算法

測試代碼:安全

https://github.com/zhangyue0503/dev-blog/blob/master/php/202006/source/PHP%E7%9A%84LZF%E5%8E%8B%E7%BC%A9%E6%89%A9%E5%B1%95%E5%B7%A5%E5%85%B7.php服務器

參考文檔:框架

https://www.php.net/manual/zh/book.lzf.php函數

http://www.javashuo.com/article/p-vsaepwju-bo.html

各自媒體平臺都可搜索【硬核項目經理】工具

相關文章
相關標籤/搜索