这个很简单,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(); 网友回复


