DedeCMS模板中随机生成几组数字字母组合,由于网站内容页需要,所以设计此组合方式,首先打开文件:/include/extend.func.php,在代码的底部加入如下代码:
//随机生成车牌号码
function generateLicensePlate($prefix) {
// 排除i和o字母
$letters = array_merge(range('A', 'H'), range('J', 'N'), range('P', 'Z'));
$numbers = range(0, 9);
$plates = array();
for ($i = 0; $i < 5; $i++) {
$type = $i % 3; // 轮流使用3种生成方式
switch ($type) {
case 0: // 5位全数字
shuffle($numbers);
$plate = implode('', array_slice($numbers, 0, 5));
break;
case 1: // 前1-2字母+后3位数字
$letterCount = rand(1, 2);
shuffle($letters);
$letterPart = implode('', array_slice($letters, 0, $letterCount));
shuffle($numbers);
$numberPart = implode('', array_slice($numbers, 0, 5 - $letterCount));
$plate = $letterPart . $numberPart;
break;
case 2: // 第一位数字+后4位(1-2字母+数字)
shuffle($numbers);
$firstDigit = $numbers[0];
$letterCount = rand(1, 2);
shuffle($letters);
$letterPart = implode('', array_slice($letters, 0, $letterCount));
shuffle($numbers);
$numberPart = implode('', array_slice($numbers, 0, 4 - $letterCount));
$plate = $firstDigit . $letterPart . $numberPart;
break;
}
$plates[] = $prefix . $plate;
}
return $plates;
}
然后在模板中加入如下代码(默认是标题+数字组合,如果不需要标题删除即可。):
{dede:php}
$title = $refObj->Fields['title'];
$plates = generateLicensePlate($title);
echo implode("、", $plates);
{/dede:php}