Files
liche/common/helpers/comm_helper.php
T
2021-08-13 10:55:13 +08:00

1055 lines
34 KiB
PHP

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
* 加载缓存工具
* @param string $type
* @param array $config
* @return bool
*/
if (!function_exists('load_cache')) {
function &load_cache($type = 'redis', $config = array())
{
$CI = &get_instance();
$CI->load->driver('cache');
$cache = null;
switch ($type) {
case 'redis':
// $cache = $CI->cache->redis;
// break;
$CI->load->library('myredis');
$CI->myredis->init($config);
return $CI->myredis;
case 'file':
$cache = $CI->cache->file;
break;
default:
$cache = $CI->cache->memcached;
break;
}
return $cache;
}
}
/**
* sql日志
* @param $string
* @param $filename
* @return bool
*/
if (!function_exists('debug_sql')) {
function debug_sql($logmsg = '')
{
$dbs = array();
$CI = &get_instance();
foreach (get_object_vars($CI) as $CI_object) {
if (is_object($CI_object)) {
$class_name = get_class($CI_object);
if (stristr($class_name, 'model')) {
$logmsg .= '[' . $class_name . '] ';
}
}
}
if (class_exists('HD_Model') && !empty(HD_Model::$dbs)) {
$num = 0;
foreach (HD_Model::$dbs as $db_object) {
$dbs['count'] = count($db_object->queries);
if ($dbs['count'] > 0) {
for ($i = 0; $i < $dbs['count']; $i++) {
$dbs['sql'] .= "\n" . "$num => " . str_replace(array("\r", "\n", "\r\n"), array(' ', ' ', ' '), $db_object->queries[$i]);
$dbs['sql'] .= " | time " . $db_object->query_times[$i];
$num++;
}
}
}
}
$CI->benchmark->mark('total_execution_time_end');
$totaltime = $CI->benchmark->elapsed_time("total_execution_time_start", "total_execution_time_end");
if ($dbs) {
$logmsg .= "|totaltime:" . $totaltime . "|sqlcount:" . $dbs['count'] . "|" . $dbs['sql'];
}
debug_log($logmsg . "\n", 'mysql.log');
}
}
/**
* debug日志
* @param $string
* @param $filename
* @param $sub_dir "子目录"
* @return bool
*/
if (!function_exists('debug_log')) {
function debug_log($string, $filename = 'log.txt', $sub_dir = '')
{
$log_dir = APPPATH . 'logs/';
if (!file_exists($log_dir)) {
return false;
}
$log_dir = $log_dir . date('Y/m/d');
if (!file_exists($log_dir)) {
$oldumask = umask(0);
mkdir($log_dir, 0777, true);
umask($oldumask);
}
if ($sub_dir) {
$log_dir .= "/{$sub_dir}";
if (!file_exists($log_dir)) {
$oldumask = umask(0);
mkdir($log_dir, 0777, true);
umask($oldumask);
}
}
$log_dir = $log_dir . '/';
if (!$filename) {
$filename = $log_dir;
} else {
$filename = $log_dir . $filename;
}
if (!file_exists($filename)) {
$oldumask = umask(0);
touch($filename);
chmod($filename, 0666);
umask($oldumask);
}
$handle = fopen($filename, 'a+');
if (!is_string($string)) {
$string = var_export($string, TRUE);
}
list($msec, $sec) = explode(' ', microtime());
fwrite($handle, date('H:i:s') .' '.floatval($msec)*1000 . PHP_EOL . $string . PHP_EOL);
fclose($handle);
return true;
}
}
/**
* 检查手机号码是否合法,合法返回true.
* @param string $mobile
* @return bool
*/
if (!function_exists('mobile_valid')) {
function mobile_valid($mobile = '')
{
return preg_match("/^1\d{10}$/", $mobile);
}
}
/**
* 校验ua
* @return string
*/
if (!function_exists('checkua')) {
function checkua()
{
if (is_mobile()) {
if (strstr($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger')) {
return 'wx';
} else if (strstr($_SERVER['HTTP_USER_AGENT'], 'microfish')) {
return 'xy';
} else {
return 'wap';
}
} else {
return 'pc';
}
}
}
if (!function_exists('is_mobile')) {
function is_mobile()
{
$regex_match = "/(nokia|iphone|android|motorola|^mot\-|softbank|foma|docomo|kddi|up\.browser|up\.link|";
$regex_match .= "htc|dopod|blazer|netfront|helio|hosin|huawei|novarra|CoolPad|webos|techfaith|palmsource|";
$regex_match .= "blackberry|alcatel|amoi|ktouch|nexian|samsung|^sam\-|s[cg]h|^lge|ericsson|philips|sagem|wellcom|bunjalloo|maui|";
$regex_match .= "symbian|smartphone|midp|wap|phone|windows ce|iemobile|^spice|^bird|^zte\-|longcos|pantech|gionee|^sie\-|portalmmm|";
$regex_match .= "jig\s browser|hiptop|^ucweb|^benq|haier|^lct|opera\s*mobi|opera\*mini|320x320|240x320|176x220";
$regex_match .= ")/i";
return isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE']) or preg_match($regex_match, strtolower($_SERVER['HTTP_USER_AGENT']));
}
}
/**
* 二维数组跟据某个字段按另一个数组的顺序排序
* @param $src_array
* @param $sort_key
* @param $sort_array
* @return array
*/
if (!function_exists('array_sort_by_array')) {
function array_sort_by_array($src_array, $sort_key, $sort_array)
{
$sort_weight = array_flip($sort_array);
$result = array();
foreach ($src_array as $item) {
if (isset($sort_weight[$item[$sort_key]])) {
$result[$sort_weight[$item[$sort_key]]] = $item;
}
}
ksort($result);
return array_values($result);
}
}
/**
* 一维数据数组生成数据树
* @param array $list 数据列表
* @param string $id ID Key
* @param string $pid 父ID Key
* @param string $path
* @param string $ppath
* @return array
*/
if (!function_exists('arr2table')) {
function arr2table(array $list, $id = 'id', $pid = 'pid', $path = 'path', $ppath = '')
{
$tree = array();
foreach (arr2tree($list, $id, $pid) as $attr) {
$attr[$path] = "{$ppath}-{$attr[$id]}";
$attr['sub'] = isset($attr['sub']) ? $attr['sub'] : array();
$attr['spt'] = substr_count($ppath, '-');
$attr['spl'] = str_repeat("&nbsp;&nbsp;&nbsp;&nbsp;├&nbsp;", $attr['spt']);
$sub = $attr['sub'];
unset($attr['sub']);
$tree[] = $attr;
if (!empty($sub)) {
$tree = array_merge($tree, arr2table($sub, $id, $pid, $path, $attr[$path]));
}
}
return $tree;
}
}
/**
* 一维数据数组生成数据树
* @param array $list 数据列表
* @param string $id 父ID Key
* @param string $pid ID Key
* @param string $son 定义子数据Key
* @return array
*/
if (!function_exists('arr2tree')) {
function arr2tree($list, $id = 'id', $pid = 'pid', $son = 'sub')
{
list($tree, $map) = array(array(), array());
foreach ($list as $item) {
$map[$item[$id]] = $item;
}
foreach ($list as $item) {
if (isset($item[$pid]) && isset($map[$item[$pid]])) {
$map[$item[$pid]][$son][] = &$map[$item[$id]];
} else {
$tree[] = &$map[$item[$id]];
}
}
unset($map);
return $tree;
}
}
/**
* 获取数据树子ID
* @param array $list 数据列表
* @param int $id 起始ID
* @param string $key 子Key
* @param string $pkey 父Key
* @return array
*/
if (!function_exists('array_sub_ids')) {
function array_sub_ids($list, $id = 0, $key = 'id', $pkey = 'pid')
{
$ids = array(intval($id));
foreach ($list as $v) {
if (intval($v[$pkey]) > 0 && intval($v[$pkey]) === intval($id)) {
$ids = array_merge($ids, array_sub_ids($list, intval($v[$key]), $key, $pkey));
}
}
return $ids;
}
}
/*
* 分页
*/
if (!function_exists('page_view')) {
//
function page_view($config)
{
$CI = &get_instance();
$CI->load->view('pager', $config);
}
}
/**
* 加载分页js脚本
*/
if (!function_exists('page_script')) {
//
function page_script($config)
{
$CI = &get_instance();
$CI->load->view('pager_script', $config);
}
}
/**
* 加载页面
* @param $url
*/
if (!function_exists('load_view')) {
function load_view($url)
{
$CI = &get_instance();
$CI->load->view($url);
}
}
/*
* 获取ip
*/
if (!function_exists('get_client_ip')) {
function get_client_ip($type = 0, $show_port = false)
{
$type = $type ? 1 : 0;
static $ip = NULL;
if ($ip !== NULL) {
return $ip[$type];
}
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
$pos = array_search('unknown', $arr);
if (false !== $pos) {
unset($arr[$pos]);
}
$ip = trim($arr[0]);
} elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (isset($_SERVER['REMOTE_ADDR'])) {
$ip = $_SERVER['REMOTE_ADDR'];
}
// IP地址合法验证
$long = sprintf("%u", ip2long($ip));
$ip = $long ? array($ip, $long) : array('0.0.0.0', 0);
if ($show_port) {
return $ip[$type] . ":" . $_SERVER['REMOTE_PORT'];
}
return $ip[$type];
}
}
/**
* 阿里短信
*/
if (!function_exists('send_sms')) {
function send_sms($mobile, $code)
{
require_once COMMPATH . '/third_party/alisms/alisms.php';
$sign = '狸车';
$template = 'SMS_218630210';
$alisms = new AliSms();
$alisms->sendSms($mobile, array('code' => $code), $template, $sign);
return true;
}
}
/**
* 北京亿美短信
*/
if (!function_exists('b2m_send_sms')) {
function b2m_send_sms($mobile, $content)
{
require_once COMMPATH . '/third_party/b2m/sms.php';
$resobj = SendSMS($mobile, $content);
$resobj->ciphertext = "";
return $resobj ? $resobj->plaintext : false;
}
}
/*
* 小鱼短信
*/
if (!function_exists('xiaoyu_sms_api')) {
function xiaoyu_sms_api($mobile, $content, $code)
{
$CI = &get_instance();
$CI->load->helper('xiaoyuapi');
$ip = $CI->input->ip_address();
$data = format_url_data(array(
'action' => 'sendSms',
'mobile' => $mobile,
'content' => $content,
'code' => $code,
'ip' => $ip
));
$auth = xiaoyu_authcode($data, 'ENCODE', 'Jodi%923jos88');
$url = "http://api.xiaoyu.com/pc";
$result = post_to_url($url, array('auth' => $auth), $err);
$result = json_decode($result, true);
return $result;
}
}
/*
* 随机码
*/
if (!function_exists('getNonceStr')) {
/**
* 随机字母数字串
* @param int $length (长度)
* @return string
*/
function getNonceStr($length = 32)
{
$chars = "abcdefghijklmnopqrstuvwxyz0123456789";
$str = "";
for ($i = 0; $i < $length; $i++) {
$str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
}
return $str;
}
}
if (!function_exists('getNonceStrnum')) {
/**
* 随机数字串
* @param int $length (长度)
* @return string
*/
function getNonceStrnum($length = 32)
{
$chars = "0123456789";
$str = "";
for ($i = 0; $i < $length; $i++) {
$str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
}
return $str;
}
}
/**
* 返回七牛缩略图地址
* @param $url
* @param $width
* @param int $height
* @param string $type 存储空间 默认img (img,video)
* @param string $storage
* @return string
*/
if (!function_exists('build_qiniu_image_url')) {
function build_qiniu_image_url($url = '', $width = 0, $height = 0, $type = '')
{
$thumb = $url;
if (!preg_match('/^(https?:)?\/\//', $url)) {
$CI = &get_instance();
$config = array();
$type && $config['type'] = $type;
if ($type == 'video') {
$CI->load->library('qiniu', $config, 'qiniu_video');
$thumb = $CI->qiniu_video->getBaseUriQiniu() . $url;
} else {
$CI->load->library('qiniu', $config);
$thumb = $CI->qiniu->getBaseUriQiniu() . $url;
}
}
if ($width && $height) {
$connect = strpos($thumb, '?') ? '&' : '?';//判断url是否存在?号
$thumb .= $connect . "imageView2/1/w/{$width}/h/{$height}/interlace/1";//等比缩放,居中裁剪
} elseif ($width) {
$connect = strpos($thumb, '?') ? '&' : '?';//判断url是否存在?号
$thumb .= $connect . "imageView2/2/w/{$width}/h/{$height}/interlace/1";//等比缩放,不裁剪
}
//有些保存完整url的替换域名,支持小鱼域名,不替换
if('xiaoyu' != $type){
$thumb = str_replace("qimg.shequ.xiaoyu.com", "qimg.haodian.cn", $thumb);
}
return $thumb;
}
}
/**
* 返回七牛视频
* @param $url (视频地址)
* @param $frame (指定第几帧作为视频照片)
* @param string $type 存储空间 默认img (img,video)
* @return array (url, img)
*/
if (!function_exists('build_qiniu_video')) {
function build_qiniu_video($url, $frame = 0, $type = '')
{
if (!$url) {
return array();
}
$src = $url . '?vframe/jpg/offset/' . $frame;
$url = build_qiniu_image_url($url, 0, 0, $type);
$src = build_qiniu_image_url($src, 0, 0, $type);
return array($url, $src);
}
}
if (!function_exists('build_app_url')) {
/**
* 获取完整的url,前端page打头的是小程序页面加‘/’
* @param $url
* @return string
*/
function build_app_url($url)
{
if ('page' == substr($url, 0, 4)) {
$url = '/' . $url;
}
return $url;
}
}
/**
* 手机隐藏信息
* @param string $mobile 手机号
* @return string 隐藏后的手机号
*
*/
if (!function_exists('mobile_asterisk')) {
function mobile_asterisk($mobile)
{
$mobile_asterisk = substr($mobile, 0, 3) . "****" . substr($mobile, 7, 4);
return $mobile_asterisk;
}
}
/**
* 姓名隐藏信息
* @param string $mobile 姓名
* @return string 隐藏后的姓名
*
*/
if (!function_exists('name_asterisk')) {
function name_asterisk($str)
{
//判断是否包含中文字符
if (preg_match("/[\x{4e00}-\x{9fa5}]+/u", $str)) {
//按照中文字符计算长度
$len = mb_strlen($str, 'UTF-8');
//echo '中文';
if ($len >= 3) {
//三个字符或三个字符以上掐头取尾,中间用*代替
$str = mb_substr($str, 0, 1, 'UTF-8') . '**';
} elseif ($len == 2) {
//两个字符
$str = mb_substr($str, 0, 1, 'UTF-8') . '*';
}
} else {
//按照英文字串计算长度
$len = strlen($str);
//echo 'English';
if ($len >= 3) {
//三个字符或三个字符以上掐头取尾,中间用*代替
$str = substr($str, 0, 1) . '**';
} elseif ($len == 2) {
//两个字符
$str = substr($str, 0, 1) . '*';
}
}
return $str;
}
}
/**
*数字金额转换成中文大写金额的函数
*String Int $num 要转换的小写数字或小写字符串
*return 大写字母
*小数位为两位
**/
if (!function_exists('num_to_rmb')) {
function num_to_rmb($num)
{
$c1 = "零壹贰叁肆伍陆柒捌玖";
$c2 = "分角元拾佰仟万拾佰仟亿";
//精确到分后面就不要了,所以只留两个小数位
$num = round($num, 2);
//将数字转化为整数
$num = $num * 100;
if (strlen($num) > 10) {
return "金额太大,请检查";
}
$i = 0;
$c = "";
while (1) {
if ($i == 0) {
//获取最后一位数字
$n = substr($num, strlen($num) - 1, 1);
} else {
$n = $num % 10;
}
//每次将最后一位数字转化为中文
$p1 = substr($c1, 3 * $n, 3);
$p2 = substr($c2, 3 * $i, 3);
if ($n != '0' || ($n == '0' && ($p2 == '亿' || $p2 == '万' || $p2 == '元'))) {
$c = $p1 . $p2 . $c;
} else {
$c = $p1 . $c;
}
$i = $i + 1;
//去掉数字最后一位了
$num = $num / 10;
$num = (int)$num;
//结束循环
if ($num == 0) {
break;
}
}
$j = 0;
$slen = strlen($c);
while ($j < $slen) {
//utf8一个汉字相当3个字符
$m = substr($c, $j, 6);
//处理数字中很多0的情况,每次循环去掉一个汉字“零”
if ($m == '零元' || $m == '零万' || $m == '零亿' || $m == '零零') {
$left = substr($c, 0, $j);
$right = substr($c, $j + 3);
$c = $left . $right;
$j = $j - 3;
$slen = $slen - 3;
}
$j = $j + 3;
}
//这个是为了去掉类似23.0中最后一个“零”字
if (substr($c, strlen($c) - 3, 3) == '零') {
$c = substr($c, 0, strlen($c) - 3);
}
//将处理的汉字加上“整”
if (empty($c)) {
return "零元整";
} else {
return $c . "";
}
}
}
/**
* 友好的时间显示
*
* @param int $sTime 待显示的时间
* @param string $type 类型. normal | mohu | full | ymd | other
* @return string
*/
if (!function_exists('friendly_date')) {
function friendly_date($sTime, $type = 'normal')
{
if (!$sTime) return '';
//sTime=源时间,cTime=当前时间,dTime=时间差
$cTime = time();
$dTime = $cTime - $sTime;
$dDay = intval(date("z", $cTime)) - intval(date("z", $sTime));
//$dDay = intval($dTime/3600/24);
$dYear = intval(date("Y", $cTime)) - intval(date("Y", $sTime));
//normal:n秒前,n分钟前,n小时前,日期
if ($type == 'normal') {
if ($dTime < 60) {
if ($dTime < 10) {
return '刚刚'; //by yangjs
} else {
return intval(floor($dTime / 10) * 10) . "秒前";
}
} elseif ($dTime < 3600) {
return intval($dTime / 60) . "分钟前";
//今天的数据.年份相同.日期相同.
} elseif ($dYear == 0 && $dDay == 0) {
//return intval($dTime/3600)."小时前";
return '今天' . date('H:i', $sTime);
} elseif ($dYear == 0) {
return date("m月d日 H:i", $sTime);
} else {
return date("Y-m-d H:i", $sTime);
}
} elseif ($type == 'mohu') {
if ($dTime < 60) {
return $dTime . "秒前";
} elseif ($dTime < 3600) {
return intval($dTime / 60) . "分钟前";
} elseif ($dTime >= 3600 && $dDay == 0) {
return intval($dTime / 3600) . "小时前";
} elseif ($dDay > 0 && $dDay <= 7) {
return intval($dDay) . "天前";
} elseif ($dDay > 7 && $dDay <= 30) {
return intval($dDay / 7) . '周前';
} elseif ($dDay > 30) {
return intval($dDay / 30) . '个月前';
}
//full: Y-m-d , H:i:s
} elseif ($type == 'full') {
return date("Y-m-d , H:i:s", $sTime);
} elseif ($type == 'ymd') {
return date("Y-m-d", $sTime);
} else {
if ($dTime < 60) {
return $dTime . "秒前";
} elseif ($dTime < 3600) {
return intval($dTime / 60) . "分钟前";
} elseif ($dTime >= 3600 && $dDay == 0) {
return intval($dTime / 3600) . "小时前";
} elseif ($dYear == 0) {
return date("Y-m-d H:i:s", $sTime);
} else {
return date("Y-m-d H:i:s", $sTime);
}
}
return '';
}
}
/**
* Notes:求两个日期之间相差的天数
* Created on: 2021/01/05 18:20
* Created by: dengbw
* @param $day1
* @param $day2
* @return number
*/
if (!function_exists('diff_between_twoDays')) {
function diff_between_twoDays($day1, $day2)
{
$second1 = strtotime($day1);
$second2 = strtotime($day2);
if ($second1 < $second2) {
$tmp = $second2;
$second2 = $second1;
$second1 = $tmp;
}
$day = (($second1 - $second2) / 86400);
return $day;
}
}
if (!function_exists('status_verify')) {
//
function status_verify($status)
{
if ($status || $status == '0') {
return true;
} else return false;
}
}
/**
* Notes:商品图片
* Created on: 2020/3/12 16:57
* Created by: dengbw
* @param $json
* @param int $width
* @param int $height
* @return string
*/
if (!function_exists('item_img')) {
function item_img($json, $width = 0, $height = 0)
{
$item_img = '';
$imgs = json_decode($json, true);
if ($imgs) {
if ($imgs['cover']) {
$item_img = $imgs['cover'];//商品封面
} elseif ($imgs['banner']) {
$item_img = $imgs['banner'][0];//商品图第一张
}
$item_img = build_qiniu_image_url($item_img, $width, $height);
}
return $item_img;
}
}
/**
* POST 请求
* @param string $url
* @param array $post_data
* @return string content
*/
if (!function_exists('http_post_com')) {
function http_post_com($url, $post_data)
{
if (empty($post_data)) {
$post_data = array('1' => 1);
}
if (empty($url)) {
return false;
}
$postUrl = $url;
$curlPost = http_build_query($post_data);//处理数组
$ch = curl_init();//初始化curl
curl_setopt($ch, CURLOPT_URL, $postUrl);//抓取指定网页
curl_setopt($ch, CURLOPT_HEADER, 0);//设置header
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // https请求 不验证证书和hosts
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
$data = curl_exec($ch);//运行curl
curl_close($ch);
$data = trim($data, chr(239) . chr(187) . chr(191));
$data = json_decode($data, true);
return $data;
}
}
/**
* Notes:格式化数字
* Created on: 2020/7/1 16:17
* Created by: dengbw
* @param $number
* @param int $decimals
* @param string $pr
* @return string
*/
if (!function_exists('number_format_com')) {
function number_format_com($number, $decimals = 2, $pr = '¥')
{
$number = $number ? $number : 0.00;
return $pr . number_format($number, $decimals, '.', '');
}
}
/**
* 获取当前协议类型
* @author:xxb
* @time:2021/03/02
* @return string
*/
if (!function_exists('server_http')){
function server_http(){
if (false !== strpos($_SERVER['HTTP_HOST'], 'dev')) { //dev 测试
$http = 'http://';
} elseif (false !== strpos($_SERVER['HTTP_HOST'], 'test')) {//test 测试
$http = 'https://';
} else { // 正式
$http = 'https://';
}
return $http;
}
}
/**
* Notes:获取url地址
* Created on: 2020/11/2 15:27
* Created by: dengbw
* @param string $type
* @return string
*/
if (!function_exists('http_host_com')){
function http_host_com($type = 'api'){
$url = '';
if(false !== strpos($_SERVER['HTTP_HOST'], 'dev')){ //dev 测试
if($type == 'api'){
$url = 'https://liche-api-dev.xiaoyu.com';
} else if($type == 'home'){
$url = "https://liche-wxdev.xiaoyu.com";
} else if($type == 'admin'){
$url = "http://liche-admin.dev.xiaoyu.com";
}
} elseif(false !== strpos($_SERVER['HTTP_HOST'], 'test')) {//test 测试
if($type == 'api'){
$url = 'api.lc.haodian.cn';
} else if($type == 'home'){
$url = "https://www-test.liche.cn";
} else if($type == 'admin'){
$url = "https://admin.test.liche.cn";
}
} else { // 正式
if($type == 'api'){
$url = 'https://api.liche.cn';
} else if($type == 'home'){
$url = "https://www.liche.cn";
} else if($type == 'admin'){
$url = "https://admin.liche.cn";
}
}
return $url;
}
}
/**
* Notes:二维数组根据某个键排序
* Created on: 2020/11/06 18:20
* Created by: dengbw
* @param $arrays
* @param $sort_key //通过这个字段排序
* @param int $sort_order //SORT_DESC表示降序排列,SORT_STRING表示设置'sort_key'字段的比较以字符串方式进行
* @param int $sort_type
* @return bool
*/
if(!function_exists('sort_array')){
function sort_array($arrays, $sort_key, $sort_order = SORT_ASC, $sort_type = SORT_NUMERIC){
$key_arrays = array();
if(is_array($arrays)){
foreach($arrays as $array){
if(is_array($array)){
$key_arrays[] = $array[$sort_key];
} else {
return false;
}
}
} else {
return false;
}
array_multisort($key_arrays, $sort_order, $sort_type, $arrays);
return $arrays;
}
}
/*
* 随机获取用户名
*/
if(!function_exists('rand_name')){
function rand_name(){
$fam_arr = array(
'赵', '钱', '孙', '李', '周', '吴', '郑', '王', '冯', '陈', '褚', '卫', '蒋',
'沈', '韩', '杨', '朱', '秦', '尤', '许', '何', '吕', '施', '张', '孔', '曹', '严', '华', '金', '魏',
'陶', '姜', '戚', '谢', '邹', '喻', '柏', '水', '窦', '章', '云', '苏', '潘', '葛', '奚', '范', '彭',
'郎', '鲁', '韦', '昌', '马', '苗', '凤', '花', '方', '任', '袁', '柳', '鲍', '史', '唐', '费', '薛',
'雷', '贺', '倪', '汤', '滕', '殷', '罗', '毕', '郝', '安', '常', '傅', '卞', '齐', '元', '顾', '孟',
'平', '黄', '穆', '萧', '尹', '姚', '邵', '湛', '汪', '祁', '毛', '狄', '米', '伏', '成', '戴', '谈',
'宋', '茅', '庞', '熊', '纪', '舒', '屈', '项', '祝', '董', '梁', '杜', '阮', '蓝', '闵', '季', '贾',
'路', '娄', '江', '童', '颜', '郭', '梅', '盛', '林', '钟', '徐', '邱', '骆', '高', '夏', '蔡', '田',
'樊', '胡', '凌', '霍', '虞', '万', '支', '柯', '管', '卢', '莫', '柯', '房', '裘', '缪', '解', '应',
'宗', '丁', '宣', '邓', '单', '杭', '洪', '包', '诸', '左', '石', '崔', '吉', '龚', '程', '嵇', '邢',
'裴', '陆', '荣', '翁', '荀', '于', '惠', '甄', '曲', '封', '储', '仲', '伊', '宁', '仇', '甘', '武',
'符', '刘', '景', '詹', '龙', '叶', '幸', '司', '黎', '溥', '印', '怀', '蒲', '邰', '从', '索', '赖',
'卓', '屠', '池', '乔', '胥', '闻', '莘', '党', '翟', '谭', '贡', '劳', '逄', '姬', '申', '扶', '堵',
'冉', '宰', '雍', '桑', '寿', '通', '燕', '浦', '尚', '农', '温', '别', '庄', '晏', '柴', '瞿', '阎',
'连', '习', '容', '向', '古', '易', '廖', '庾', '终', '步', '都', '耿', '满', '弘', '匡', '国', '文',
'寇', '广', '禄', '阙', '东', '欧', '利', '师', '巩', '聂', '关', '荆', '司马', '上官', '欧阳', '夏侯',
'诸葛', '闻人', '东方', '赫连', '皇甫', '尉迟', '公羊', '澹台', '公冶', '宗政', '濮阳', '淳于', '单于',
'太叔', '申屠', '公孙', '仲孙', '轩辕', '令狐', '徐离', '宇文', '长孙', '慕容', '司徒', '司空'
);
$name_arr = array(
'伟', '刚', '勇', '毅', '俊', '峰', '强', '军', '平', '保', '东', '文', '辉', '力', '明', '永', '健', '世', '广', '志', '义',
'兴', '良', '海', '山', '仁', '波', '宁', '贵', '福', '生', '龙', '元', '全', '国', '胜', '学', '祥', '才', '发', '武', '新',
'利', '清', '飞', '彬', '富', '顺', '信', '子', '杰', '涛', '昌', '成', '康', '星', '光', '天', '达', '安', '岩', '中', '茂',
'进', '林', '有', '坚', '和', '彪', '博', '诚', '先', '敬', '震', '振', '壮', '会', '思', '群', '豪', '心', '邦', '承', '乐',
'绍', '功', '松', '善', '厚', '庆', '磊', '民', '友', '裕', '河', '哲', '江', '超', '浩', '亮', '政', '谦', '亨', '奇', '固',
'之', '轮', '翰', '朗', '伯', '宏', '言', '若', '鸣', '朋', '斌', '梁', '栋', '维', '启', '克', '伦', '翔', '旭', '鹏', '泽',
'晨', '辰', '士', '以', '建', '家', '致', '树', '炎', '德', '行', '时', '泰', '盛', '雄', '琛', '钧', '冠', '策', '腾', '楠',
'榕', '风', '航', '弘', '秀', '娟', '英', '华', '慧', '巧', '美', '娜', '静', '淑', '惠', '珠', '翠', '雅', '芝', '玉', '萍',
'红', '娥', '玲', '芬', '芳', '燕', '彩', '春', '菊', '兰', '凤', '洁', '梅', '琳', '素', '云', '莲', '真', '环', '雪', '荣',
'爱', '妹', '霞', '香', '月', '莺', '媛', '艳', '瑞', '凡', '佳', '嘉', '琼', '勤', '珍', '贞', '莉', '桂', '娣', '叶', '璧',
'璐', '娅', '琦', '晶', '妍', '茜', '秋', '珊', '莎', '锦', '黛', '青', '倩', '婷', '姣', '婉', '娴', '瑾', '颖', '露', '瑶',
'怡', '婵', '雁', '蓓', '纨', '仪', '荷', '丹', '蓉', '眉', '君', '琴', '蕊', '薇', '菁', '梦', '岚', '苑', '婕', '馨', '瑗',
'琰', '韵', '融', '园', '艺', '咏', '卿', '聪', '澜', '纯', '毓', '悦', '昭', '冰', '爽', '琬', '茗', '羽', '希', '欣', '飘',
'育', '滢', '馥', '筠', '柔', '竹', '霭', '凝', '晓', '欢', '霄', '枫', '芸', '菲', '寒', '伊', '亚', '宜', '可', '姬', '舒',
'影', '荔', '枝', '丽', '阳', '妮', '宝', '贝', '初', '程', '梵', '罡', '恒', '鸿', '桦', '骅', '剑', '娇', '纪', '宽', '苛',
'灵', '玛', '媚', '琪', '晴', '容', '睿', '烁', '堂', '唯', '威', '韦', '雯', '苇', '萱', '阅', '彦', '宇', '雨', '洋', '忠',
'宗', '曼', '紫', '逸', '贤', '蝶', '菡', '绿', '蓝', '儿', '翠', '烟', '小', '轩'
);
$fam_count = count($fam_arr);
$name_count = count($name_arr);
$fam = $fam_arr[rand(0, $fam_count - 1)];
$name = $name_arr[rand(0, $name_count - 1)];
return "{$fam}*{$name}";
}
}
if(!function_exists('html_text')){
/**
* 提取html文字
* @param $html
* @return mixed|string
*/
function html_text($html){
//把HTML实体标签转换为字符
$html_string = htmlspecialchars_decode($html);
//将空格回车替换成空
$content = str_replace(array(" ", "\n", "\r"), "", $html_string);
//函数剥去字符串中的 HTML、XML 以及 PHP 的标签,获取纯文本内容
$content = strip_tags($content);
//去除转义字符
$pattern = "/&[^;]+;/";
$content = preg_replace($pattern, "", $content);
return $content;
}
}
if(!function_exists('formart_bank_number')){
/**
* 处理银行卡号每四位一个空格
* @param $str
* @return string
*/
function formart_bank_number($str)
{
if (!$str) {
return $str;
}
//通过正则,每四位截取到数组中
preg_match('/([\d]{4})([\d]{4})([\d]{4})([\d]{4})([\d]{0,})?/', $str,$match);
unset($match[0]); //去除掉第一个键,因为第一个键是银行卡号的完整卡号
return implode(' ', $match);
}
}
if(!function_exists('convert_url_query')){
/**
* 将字符串参数变为数组
* @param $query
* @return array array()
*/
function convert_url_query($query){
$queryParts = explode('&', $query);
$params = array();
foreach ($queryParts as $param) {
$item = explode('=', $param);
$params[$item[0]] = $item[1];
}
return $params;
}
}
if(!function_exists('create_contract_no')){
/**
* 生成合同编号
* int $city_id
* int $id 合同id
* int $type 合同类型 (0整车合同 1代理协议 2确定信息 3交接信息)
*/
function create_contract_no($city_id = 350200, $id, $type = 0)
{
return $city_id . $type . $id . date('Ymd') . sprintf("%06d", rand(1,999999));
}
}