PHP常用自定义函数笔记

处理小数的精度

/**
 * 保留小数的位数(不四舍五入)
 * @param float $f  小数
 * @param int $precision 精度
 * @return float|int
 */
function floatPrecision($f, $precision = 2)
{
    $divisor = str_pad('1', $precision + 1, '0');
    return floor($f * $divisor) / $divisor;
}

处理乱码信息

/**
 * 处理乱码的错误信息(比如socket,tcp。。。)
 * @param $str
 * @return null|string|string[]
 */
 function doEncoding($str){
    $encode = strtoupper(mb_detect_encoding($str, ["ASCII",'UTF-8',"GB2312","GBK",'BIG5']));
    if($encode!='UTF-8'){
        $str = mb_convert_encoding($str, 'UTF-8', $encode);
    }
    return $str;
}

检测是否包含中文

下面这个方法对应数字,英文字母的检测没有问题,但是对应检测柬埔寨语言就有问题

មុខ​មាត់​ដូច​គ្ 这个字符串也能匹配出包含中文的。

/**
 * 检查字符串是否包含中文
 * @param $str
 * @return bool
 */
function checkStrIncludeCn($str)
{
    $reg = '/[x7f-xff]/';
    $result = preg_match($reg, trim($str),$match);
    var_dump($match);
    return $result > 0 ? true : false;
}

/**
*

  • 检查utf-8编码的字符串是否包含中文
  • @param $str
  • @return bool
    */
    function checkUtf8StrIncludeCn($str){
    $pattern = '/[x{4e00}-x{9fa5}]/u';
    $result = preg_match($pattern,$str,$match);
    return $result > 0 ? true : false;
    }
原文地址:https://www.cnblogs.com/zqsb/p/11004424.html