User Rights Management Code
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;
}