根据mac范围批量添加mac
可以输入一个mac范围,批量添加mac比如输入11-22-33-44-[aa-ff]-55,1-2-3-34-4-4将批量生产mac
可以输入一个mac范围,批量添加mac比如输入11-22-33-44-[aa-ff]-55,1-2-3-34-4-4
将批量生产mac
将批量生产mac
<?php /** * 根据区间id转换为实际的多个id数组 * @author 于燚 * 2014年2月10日15:29:09 */ class BatchConvertDeviceId { public static function convert($str_str) { $str_str = str_replace(',', ',',$str_str); $arr_ids = explode(',', $str_str); $arr_re=array(); foreach ($arr_ids as $str_str) { $arr_arr = preg_split("/\[([^\[\]]+)\]/", $str_str, null, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY); $int_count = count($arr_arr); $arr_data = array(); if ($int_count == 1) { $arr_data = $arr_arr; } else { for ($i = 0; $i < $int_count; $i++) { if ($i % 2 == 0) { $arr_data = self::batchLink($arr_data, array($arr_arr[$i])); } else { self::batchConvert($arr_data, $arr_arr[$i]); } } } $arr_re = array_merge($arr_re, $arr_data); } return $arr_re; } private static function batchConvert(&$arr, $str) { $arr_str = explode('-', $str); $int_start = base_convert($arr_str[0], 16, 10); $int_end = base_convert($arr_str[1], 16, 10); $int_min=$int_start<$int_end?$int_start:$int_end; $int_max=$int_start>$int_end?$int_start:$int_end; for ($int_min; $int_min <= $int_max; $int_min++) { $_arr_str[] = base_convert($int_min, 10, 16); } $arr = self::batchLink($arr, $_arr_str); } private static function batchLink($arr, $arr_str) { $arr_re = array(); if (!empty($arr)) { foreach ($arr as $_v1) { foreach ($arr_str as $_v2) { $arr_re[] = $_v1 . $_v2; } } } else { $arr_re = $arr_str; } return $arr_re; } } //$str = "ab-cd-33-22-aa-[11-13]-[ab-ac]"; // //$arr = BatchConvertDeviceId::convert($str); //echo '<pre>'; //print_r($arr);
精彩图集
精彩文章