<?
/*
@string 构造函数中,$string="aa.php:7|tt.php:10|sad:28"
@列出/只读 1
@增加 2
@修改 4
@删除 8
@所有权限 16
*/
class yqrRight
{
var $RightString;
var $arrPageRight;
function yqrRight($string)
{
$this->RightString=$string;
$this->arrPageRight=$this->listPageAndRight($string);
}
/*
@pagename eg: order.php
return 28 number
*/
function getRightByPageName($pagename)
{
return $this->getRightNumOfPage($pagename,$this->arrPageRight);
}
/*
@right_position 1,2,4,8,16
@myright_number 28
@return 返回是否具有相应的位权
*/
function can($right_position,$myright_number)
{
$arr=$this->listRightToArray($myright_number);
return $this->isHasRight($right_position,$arr);
}
function listRightToArray($myright)
{
$right=array(1,2,4,8,16);
$arr=array();
$j=0;
for($i=0;$i<count($right);$i++)
{
if($right[$i] & $myright)
{
$arr[$j]=$right[$i];
$j++;
}
}
return $arr;
}
function isHasRight($number_right,$arr_right)
{
if(array_search($number_right,$arr_right)!==false)
{
return true;
}else{
return false;
}
}
function listPageAndRight($str)
{
$arr_result=array();
$arr_page_right=explode("|",$str);
foreach ($arr_page_right as $key=>$value)
{
list($pagename,$pageright)=explode(":",$value);
$arr_result[$pagename]=$pageright;
}
return $arr_result;
}
function getRightNumOfPage($pageName,$arr_PageAndRight)
{
foreach ($arr_PageAndRight as $key=>$value)
{
if($key==$pageName)
{
return $value;
}
}
return false;
}
function isHasRightOfPage($pagename,$right_position)
{
$num=$this->getRightByPageName($pagename);
return $this->can($right_position,$num);
}
}
$str="order.php:7|add.php:28|sad.php:0|tt.php:15";
$myright=new yqrRight($str);
if($myright->isHasRightOfPage("tt.php",16))
{
echo "您具有本页面的权限!";
}else{
echo "对不起,您没有权限访问这个页面!";
}
?>
posted on 2008-08-08 23:32
hehuachina 阅读(1102)
评论(0) 编辑 收藏 引用 网摘 所属分类:
PHP