用户权限管理代码
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
{
if($ruleArr[$i]
$turnData = pow(2, $ruleArr[$i]) - 1
$varData[$i] = $turnData >> $usedBit;
$usedBit += $ruleArr[$i];
}
}
else
{
for($i = 0, $cnt = Count($ruleArr); $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
{
if($ruleArr[$i]
if(!$data[$i]) $data[$i] = 0;
$rslt |= $data[$i]
$usedBit += $ruleArr[$i];
}
}
else
{
for($i = 0, $cnt = Count($ruleArr); $i
{
$rslt .= sprintf('%0' . $ruleArr[$i] . 's', $data[$i]);
}
}
return $rslt;
}