字符串类操作

生成长整形

/**
 * 生成长整型ID
 *
 * @return string
 */
 function genId()
    {

        //生成24位唯一订单号码,格式:YYYY-MMDD-HHII-SS-NNNN,NNNN-CC,其中:YYYY=年份,MM=月份,DD=日期,HH=24格式小时,II=分,SS=秒,NNNNNNNN=随机数,CC=检查码
        @date_default_timezone_set("PRC");
        //日期
        //订单号码主体(YYYYMMDDHHIISSNNNNNNNN)
        $order_id_main = date('YmdHis') . rand(10000000,99999999);
        //订单号码主体长度
        $order_id_len = strlen($order_id_main);
        $order_id_sum = 0;
        for($i=0; $i<$order_id_len; $i++){

            $order_id_sum += (int)(substr($order_id_main,$i,1));

        }

        //唯一订单号码(YYYYMMDDHHIISSNNNNNNNNCC)
        $order_id = $order_id_main . str_pad((100 - $order_id_sum % 100) % 100,2,'0',STR_PAD_LEFT);
        return $order_id;
    }

字符串首字母转头像

 /**
     * 首字母头像
     * @param $text
     * @return string
     */
    function letter_avatar($text)
    {
        $total = unpack('L', hash('adler32', $text, true))[1];
        $hue = $total % 360;
        list($r, $g, $b) = hsv2rgb($hue / 360, 0.3, 0.9);

        $bg = "rgb({$r},{$g},{$b})";
        $color = "#ffffff";
        $first = mb_strtoupper(mb_substr($text, 0, 1));
        $src = base64_encode('<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="100" width="100"><rect fill="' . $bg . '" x="0" y="0" width="100" height="100"></rect><text x="50" y="50" font-size="50" text-copy="fast" fill="' . $color . '" text-anchor="middle" text-rights="admin" alignment-baseline="central">' . $first . '</text></svg>');
        $value = 'data:image/svg+xml;base64,' . $src;
        return $value;
    }

富文本图片增加域名

/*
 *  富文本图片增加域名
 *  $content    文本内容
 *  $suffix     域名
 * */

    function get_img_thumb_url($content = "", $suffix = "")
    {
        $pregRule = "/<[img|IMG].*?src=[\'|\"](.*?(?:[\.jpg|\.jpeg|\.png|\.gif|\.bmp]))[\'|\"].*?[\/]?>/";
        $content = preg_replace($pregRule, '<img src="' . $suffix . '${1}" style="max-width:100%">', $content);
        return $content;
    }

移除Emoji表情

/**
 * 移除Emoji表情
 *
 * @param $nickName
 *
 * @return null|string|string
 */
if (!function_exists('removeEmoji')) {
    function removeEmoji($nickName)
    {
        $nickName = preg_replace_callback('/./u',
            function (array $match) {
                return strlen($match[0]) >= 4 ? '' : $match[0];
            },
            $nickName
        );
        return $nickName;
    }
}

转换字符编码为utf-8

 /*
     * 转换字符编码为utf-8
     * */
    function strToUtf8($str)
    {
        $encode = mb_detect_encoding($str, array("ASCII", 'UTF-8', "GB2312", "GBK", 'BIG5'));
        if ($encode == 'UTF-8') {
            return $str;
        } else {
            return mb_convert_encoding($str, 'UTF-8', $encode);
        }
    }

分割中文字符串

 /**
     * 分割中文字符串
     * $str 字符串
     * $count 个数
     * @param $str
     * @param $count
     * @return array
     */
    function mb_str_split($str, $count)
    {
        $leng = strlen($str) / 3;     //中文长度
        $arr = array();
        for ($i = 0; $i < $leng; $i += $count) {
            $arr[] = mb_substr($str, $i, $count);
        }
        return $arr;
    }

php利用正则表达式提取内容中的所有图片(Img)或第一张图片(Img)

//php利用正则表达式提取内容中的所有图片(Img)或第一张图片(Img)
    function getImgs($content,$order='ALL'){
        $pattern='/<img.+src=\"?(.+\.(jpg|gif|bmp|bnp|png))\"?.+>/i';
        preg_match_all($pattern,$content,$match);
        if(isset($match[1])&&!empty($match[1])){
            if($order==='ALL'){
                return $match[1];
            }
            if(is_numeric($order)&&isset($match[1][$order])){
                return $match[1][$order];
            }
        }
        return '';
    }