判断字符串是否需要压缩,然后再进行压缩,需要优化的地方很多,比如把压缩结果保存起来,避免执行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);
}
}//$ak开发密钥,$cityname城市名称(支持省县乡详细地址) public function getposition($ak,$cityname){ $callback=array('lng'=>0,'l...
通过http推送消息给socket,socket服务再向客户端推送<?php /* * Socket推送 * 请用守护进程方式启动php msgservice.php & (socket只...
001源码:/* * $xml_str是xml字符串 */ function xmltoarray($xml_str) { //禁止XML实体扩展攻击 libxml_disable_entity_loader(true); //拒绝包含...
参数中包含gb2312的字符串,返回结果是false或者null(不同PHP版本具有差异性)代码:<?php $dbms = 'mysql'; $host = '192.168.8.8'; $dbName =&n...
<?php $member = new class { public function getInfo() { ...
php7.1引入了PHP异步信号处理函数pcntl_async_signals() 来处理阻塞问题。在php7之前信号处理方式有2种,第一种是基于ticks来每执行一行代码来触发执行信号监听,第二种是直接while(true){ //监听信号 }第一种方式如果某行的代码阻塞时间较长会影响...