LZF 扩展直接在 phar.php.net 下载安装即可,也是走得正常的 PHP 的扩展安装的步骤。LZF 压缩算法基于 Lempel-Ziv ,并利用了有限状态熵编码。LZF采取类似 lz77 和 lzss 的稠浊编码。利用3种 “起始标记” 来代表每段输出的数据串。关于 LZF 压缩的信息非常少,仅有的查询结果显示是它是 Apple 开源的一种非常大略的字符压缩算法。
基本函数利用$str="The2014WorldCupwillbeholdin.Itisagrandoccasionforallthefootballfansallovertheworld.MyfavoriteteamistheSpainishTeam.AndmyfavoritefootballstarisDidierYvesDrogbaTébily.IhopetheChineseTeeamcandowellintheWorldCup.BecauseChinahasneverwonaWorldCupbefore.ThisyearIhopethesituationwillchange.Whenthematchbegins,IhopeIcanwatchit.ButifIambusystudyingthennIwillnotwatchit.Becausestudyisalwaysthefirstpriority.IwishonedayChinacanholdaWorldCup,thenourChinesecanwatchthematcheswithouutgoingabroad.Maybeonedaymydreamcancometrue.";$c=lzf_compress($str);echo$c,PHP_EOL;//The2014WorldCupwillbehoin.ItisagrandoccasionforatBfootb@//fanover`w@X.My//voriteteam@Q@8SpainishT.A_m�)�Vstar@2DidiWYvesDrogbaTébily.I�p\�Chchange.candowe��@��.Becau)@1ahasne@�w�a�'!�e.Thye��msituatAa9//When`omatchCgins,�;I`�w`it.Bu!ff!busy�udying@Bn`]not�2��s@)Aalways@0firstpriAsAwAeoneday��Aa����!"nour`%AG@'����!witho�go@�abroad@�May"=�i!�dr!�`Dcom!�rue.$v=lzf_decompress($c);echo$v,PHP_EOL;//The2014WorldCupwillbeholdin.Itisagrandoccasionforallthefootballfansallovertheworld.MyfavoriteteamistheSpainishTeam.AndmyfavoritefootballstarisDidierYvesDrogbaTébily.IhopetheChineseTeamcandowellintheWorldCup.BecauseChinahasneverwonaWorldCupbefore.ThisyearIhopethesituationwillchange.//Whenthematchbegins,IhopeIcanwatchit.ButifIambusystudyingthenIwillnotwatchit.Becausestudyisalwaysthefirstpriority.IwishonedayChinacanholdaWorldCup,thenourChinesecanwatchthematcheswithoutgoingabroad.echolzf_optimized_for(),PHP_EOL;//1//如果LZF针对速率进行了优化,则返回1;对付压缩,则返回0。
LZF 全部就只供应了这三个非常大略的函数。lzf_compress() 用于对字符串进行压缩编码,可以看出我们输出的压缩之后的内容已经变成了乱码的形式。但是相对付 Bzip2 完备看不懂的编码内容来说,LZF 是可以看到原文的一部分内容的。lzf_decompress() 用于解码已经编码的字符串内容。lzf_optimized_for() 输出的是 LZF 扩展的编译后运行状态,如果返回的是 1 ,则表明针对当前系统的速率进行了优化,如果返回的是 0 ,表示的是仅仅是进行了压缩编码。
$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 对中文也是良好支持的。同样的在编码后的内容中也是有部分内容是可见的。

全部下来就只有这三个函数的一个压缩算法的扩展,是不是非常的大略方便。就像上面所说的,一是对付字符串的存储节约空间,二是可以做为某些传输的加密实现。当然,这个算法并不是完备的编码,以是我们还是能够看到原文的内容的。实在从这方面我们可以和 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
https://www.cnblogs.com/pengze0902/p/5998843.html