发布于:2021-06-30 15:27:04
/**
* 检查手机格式,中国手机不带国家代码,国际手机号格式为:国家代码-手机号
* @param $mobile
* @return bool
*/
function cmf_check_mobile($mobile)
{
if (preg_match('/(^(13\d|14\d|15\d|16\d|17\d|18\d|19\d)\d{8})$/', $mobile)) {
return true;
} else {
if (preg_match('/^\d{1,4}-\d{5,11}$/', $mobile)) {
if (preg_match('/^\d{1,4}-0+/', $mobile)) {
//不能以0开头
return false;
}
return true;
}
return false;
}
}
/**
* 文件大小格式化
* @param $bytes 文件大小(字节 Byte)
* @return string
*/
function cmf_file_size_format($bytes)
{
$type = ['B', 'KB', 'MB', 'GB', 'TB'];
for ($i = 0; $bytes >= 1024; $i++)//单位每增大1024,则单位数组向后移动一位表示相应的单位
{
$bytes /= 1024;
}
return (floor($bytes * 100) / 100) . $type[$i];//floor是取整函数,为了防止出现一串的小数,这里取了两位小数
}
/**
* 获取ThinkPHP版本
* @return string
*/
function cmf_thinkphp_version()
{
return \think\facade\App::version();
}
/**
* 获取ThinkCMF核心包目录
*/
function cmf_core_path()
{
return __DIR__ . DIRECTORY_SEPARATOR;
}
/**
* 字符串转数组
* @param string $string 字符串
* @return array
* @deprecated
*/
function str_to_arr($string)
{
$result = is_string($string) ? explode(',', $string) : $string;
return $result;
}
/**
* 是否是url链接
* @param unknown $string
* @return boolean
*/
function is_url($string)
{
if (strstr($string, 'http://') === false && strstr($string, 'https://') === false) {
return false;
} else {
return true;
}
}
/**
* 计算两点之间的距离
* @param double $lng1 经度1
* @param double $lat1 纬度1
* @param double $lng2 经度2
* @param double $lat2 纬度2
* @param int $unit m,km
* @param int $decimal 位数
* @return float 米
*/
function getDistance($lng1, $lat1, $lng2, $lat2, $unit = 1, $decimal = 0)
{
$EARTH_RADIUS = 6370.996; // 地球半径系数
$PI = 3.1415926535898;
$radLat1 = $lat1 * $PI / 180.0;
$radLat2 = $lat2 * $PI / 180.0;
$radLng1 = $lng1 * $PI / 180.0;
$radLng2 = $lng2 * $PI / 180.0;
$a = $radLat1 - $radLat2;
$b = $radLng1 - $radLng2;
$distance = 2 * asin(sqrt(pow(sin($a / 2), 2) + cos($radLat1) * cos($radLat2) * pow(sin($b / 2), 2)));
$distance = $distance * $EARTH_RADIUS * 1000;
if ($unit === 2) {
$distance /= 1000;
}
return round($distance, $decimal);
}
//删除文件函数
function delFile($path)
{
$res = false;
if (file_exists($path)) {
$res = unlink($path);
}
return $res;
}
/**
* base64转二进制
* @param $base64Str
* @return array|boo
*/
function base64_to_blob($base64Str)
{
if ($index = strpos($base64Str, 'base64,', 0)) {
$blobStr = substr($base64Str, $index + 7);
$typestr = substr($base64Str, 0, $index);
preg_match("/^data:(.*);$/", $typestr, $arr);
return [ 'blob' => base64_decode($blobStr), 'type' => $arr[ 1 ] ];
}
return false;
}
/**
* 获取近七日的时间
* @param $time
* @return array|boo
*/
function getweeks($time = '', $format = 'Y-m-d')
{
$time = $time != '' ? $time : time();
//组合数据
$date = [];
for ($i = 1; $i <= 10; $i++) {
$date[ $i ] = date($format, strtotime('+' . $i - 10 . ' days', $time));
}
return $date;
}
阅读 186+
10