用户权限管理代码
<?php
define('PATTERN_MODE_INT', 1);
define('PATTERN_MODE_STRING', 2);
function bitToArray($data, $ruleArr, $mode = PATTERN_MODE_INT) {
$varData = array();
if ($mode == PATTERN_MODE_INT) {
$usedBit = 0;
for ($i = 0; $i < Count($ruleArr); $i++) {
if ($ruleArr[$i] <= 0) continue;
$turnData = pow(2, $ruleArr[$i]) - 1 << $usedBit & $data;
$varData[$i] = $turnData >> $usedBit;
$usedBit+= $ruleArr[$i];
}
} else {
for ($i = 0, $cnt = Count($ruleArr); $i < $cnt; $i++) {
$varData[$i] = substr($data, $i, $ruleArr[$i]);
}
}
return $varData;
}
function arrayToBit($data, $ruleArr, $mode = PATTERN_MODE_INT) {
$rslt = '';
if ($mode == PATTERN_MODE_INT) {
$usedBit = 0;
$rslt = 0;
for ($i = 0; $i < Count($ruleArr); $i++) {
if ($ruleArr[$i] <= 0) continue;
if (!$data[$i]) $data[$i] = 0;
$rslt|= $data[$i] << $usedBit;
$usedBit+= $ruleArr[$i];
}
} else {
for ($i = 0, $cnt = Count($ruleArr); $i < $cnt; $i++) {
$rslt.= sprintf('%0' . $ruleArr[$i] . 's', $data[$i]);
}
}
return $rslt;
}永久地址:http://www.phprm.com/develop/554991eb3769ed5db8e05acd2d580cee.html
转载随意~请带上教程地址吧^^