处理小数的精度
/**
* 保留小数的位数(不四舍五入)
* @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;
}