+
95
-

回答

这个很简单,id主要是后面的#之间的文本,就涉及到php生成唯一的中文与英文混和的唯一字符串。

<?php

header('Content-Type: text/html; charset=UTF-8');
function generateRandomChineseChar($num) {

    $b = '';

    for ($i = 0; $i < $num; $i++) {

        // 使用chr()函数拼接双字节汉字,前一个chr()为高位字节,后一个为低位字节

        $a = chr(mt_rand(0xB0, 0xD0)).chr(mt_rand(0xA1, 0xF0));

        // 转码

        $b .= iconv('GB2312', 'UTF-8', $a);

    }

    return $b;

}


function generateUniqueMixedString($length = 16) {
    $string = '';
    $chineseChars = '';
    $enChars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';

    // 生成指定长度的字符串
    for ($i = 0; $i < $length; $i++) {
        if ($i % 3 === 0) {
            // 每三个字符中包含一个中文字符
            $string .= generateRandomChineseChar(1);
        } else {
            // 英文字符
            $string .= $enChars[mt_rand(0, strlen($enChars) - 1)];
        }
    }

    // 混入一些中文字符,使字符串更加独特
    $chineseChars = implode('', array_map('generateRandomChineseChar', array_fill(0, mt_rand(1, 3), null)));
    $string .= $chineseChars;

    // 混入数字,增加随机性
    $string .= mt_rand(100, 999);

    return $string;
}

// 生成一个长度为16的混合字符串
echo generateUniqueMixedString();

网友回复

我知道答案,我要回答