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