cator
(标哥)
版主
  
PHP流浪者
UID 81264
精华
0
积分 376
帖子 522
金钱 373 喜悦币
威望 0
人脉 3
阅读权限 100
注册 2006-10-10 来自 福州
状态 离线
|
[推荐阅读] 让JS点击后再执行?一个按钮,两个onclick,请问如何加?
临时写了个函数, 没做深入调试, LZ自己测试一下
<?php function checkIt($number) { $modes = array( 'AAAABBBB', 'AABBCCDD', 'ABABCDCD', 'AAABAAAB', 'AABBAABB', 'ABCDABCD', 'AAAAAA', 'ABCDEFG', 'AAAAAA', 'ABBABB', 'AAAABB', 'AAABBB', 'AABBCC', 'ABABAB', 'ABCABC', 'AAAAA', 'AABBB', 'AAAAB', 'AAABB', 'AAAA', 'ABAB', 'AABB', 'ABBA', 'AAAB', '####'/*升降序*/, 'AAA', '###'/*升降序*/, 'AA' ); //前后排序有优先级,只要有一个匹配,后面的就不再检索了 $result = 'unknown'; foreach ($modes as $mode) { $len = strlen($mode); $s = substr($number, -$len); $temp = array(); $match = true; for ($i=0; $i<$len; $i++) { if ($mode[$i]=='#') { if (!isset($temp['step'])) { $temp['step'] = 0; $temp['current'] = intval($s[$i]); } elseif ($temp['step'] == 0) { $temp['step'] = $temp['current'] - intval($s[$i]); if ($temp['step'] != -1 && $temp['step'] != 1) { $match = false; break; } else { $temp['current'] = intval($s[$i]); } } else { $step = $temp['current'] - intval($s[$i]); if ($step != $temp['step']) { $match = false; break; } else { $temp['current'] = intval($s[$i]); } } } else { if (isset($temp[$mode[$i]])) { if ($s[$i] != $temp[$mode[$i]]) { $match = false; break; } } else { $temp[$mode[$i]] = $s[$i]; } } } if ($match) { $result = $mode; break; } } return $result; }
echo checkIt('13888888888'); ?>
|  msn: cator # live . com |
|