判断字符串是否需要压缩,然后再进行压缩,需要优化的地方很多,比如把压缩结果保存起来,避免执行2次,判断是依赖于压缩的结果大小和原始字符串的大小来判断的,懒得处理了。代码如下
/**
* 字符串压缩工具
*/
class CompressStrUtil
{
/**
* 是否需要压缩
* @param $str
* @return bool
*/
public static function need($str): bool
{
$oldLen = strlen($str);
$newLen = strlen(self::enCompress($str));
return $newLen < $oldLen;
}
/**
* 压缩字符串
* @param $str
* @return false|string
*/
public static function enCompress($str)
{
return gzcompress($str, 9);
}
/**
* 还原字符串
* @param $str
* @return false|string
*/
public static function deCompress($str)
{
return gzuncompress($str);
}
}<?php /* *算法学习自百度.只是学习和记录 */ header("Content-type:text/html;charset=utf-8"); //1.设置奖项,id是奖项id,name是中奖名称,v是中奖概率 $arr =&n...
if($_SERVER['REQUEST_METHOD'] == 'POST') { echo('This is post '); } elseif ($_SERVER['...
自己的composer已经发布到packagist,但是无法使用composer require easy-task/easy-task来安装,只能在配置文件使用如下方式安装:"require": { "easy...
使用openssl扩展对应替换mcrypt的函数,(比较麻烦,但是openssl是未来趋势)在新版php中编译mcrypt扩展使用一个纯php代码实现的mcrypt扩展库,git地址为https://github.com/phpseclib/mcrypt_compat,每个mcrypt的方法都已经实...
elasticsearch的操作都是基于http协议的,已经有现成的php类库,composer安装即可。{ "require": { &...
本教程使用的定时任务基于EasyTak,EasyTask官方文档:https://gitee.com/392223903/EasyTask(1).安装tp5.0或者5.1composer create-project topthink/think=5.0.* tp5&n...