코드 복사 코드는 다음과 같습니다.
class cat
{
public $data;
공용 함수 __construct()
{
@include "data.php";
$this->data = $class;
}
공용 함수 CreateSortLevel($fatherlevel)
{
if(empty($fatherlevel))
{
if(is_array($this->data))
{
$fast_level = array();
foreach($this->data를 $value로)
{
if(strlen($value["sortlevel"]) == 3) {
$fast_level[] = $value["정렬수준"];
}
}
$max_fast_level = max($fast_level);
unset($fast_level);
$sub = ceil($max_fast_level) 1;
스위치(strlen($sub))
{
사례 1:
return "00{$sub }";
휴식;
사례 2:
'0{$sub}' 반환;
휴식;
사례 3:
$sub 반환;
휴식;
}
}
그렇지 않으면
{
'001'을 반환합니다.
}
}
foreach($this->data as $val)
{
if(eregi("^".$fatherlevel.".{3}$",$val["sortlevel"]))
{
$level[] = $val["sortlevel"];
}
if(is_ar 레이($레벨) )
{
$max_two_level = max($level); ))
{
사례 1:
return substr($max_two_level,0,strlen($max_two_level)-1).$sub> break; 사례 2:
return substr($max_two_level, 0,strlen($max_two_level)-2).$sub;
break;
사례 3:
return substr($max_two_level,0,strlen($max_two _level)-3).$sub break;
}
else
{
return $fatherlevel."001"; 🎜> }
}
공개 기능 주문()
{
$op = $this->data
$this->array_usort($op,"sortlevel",SORT_ASC);
$op를 반환합니다.
}
공용 함수 add_cat($sortname,$sortlevel)
{
$data = time();
$arr = 배열
(
"{$data}" => 배열
(
"sortname" => $sortname, 🎜> "정렬 수준" => this->CreateSortLevel($sortlevel)
)
);
$rs = $this->data $arr;
$this->add_wirte($rs);
}
비공개 함수 array_usort(&$array)
{
$args = func_get_args();
for($i=1,$cmd='',$size=count($args);$i<$size;$i )
{
$num = $i;
$order = "";
$con = "@strcmp($a['$args[$num]'],$b['$args[$num]'])";
while( $i < $size)
{
if($args[$i] === SORT_NUMERIC)
{ $con = "($a['$args [$num]']-$b['$args[$num]'])";
}
else if($args[$i] === SORT_DESC)
{
$order = " -1*";
}
else if(is_string($args[$i]))
{
$i--;
휴식;
}
}
$cmd .= "if($num = $con)return $order$num;else ";
if($order != '')
{
$i ;
}
}
@usort($array,@create_function('$a,$b',"$cmd return 0;"));
}
공용 함수 wirte($sortname,$sortlevel)
{
$array = " $array .= '$class = array'."rn(rn";
$array .= ' "'.time().'" => array'."rn";
$array .= ' ('."rn";
$array .= ' "sortname" => "'.$sortname.'"'.",rn";
$array .= ' " sortlevel" => "'.$this->CreateSortLevel($sortlevel).'"'."rn";
$array .= ' )'."rn";
$array .= " )rn?>";
file_put_contents("data.php",$array);
}
공용 함수 add_wirte($rs)
{
$array = " $array .= '$class = array'."rn(rn";
foreach($rs as $key=>$value)
{
$array .= "rn" ;
$array .= ' "'.$key.'" => array'."rn"
$array .= ' ('."rn";
$array .= ' "sortname" => "'.$value["sortname"].'"'.",rn"
$array .= ' "sortlevel" => "'.$value["sortlevel"] .'"'."rn";
$array .= ' ),';
}
$array = substr($array,0,-1);
$array .= " rn)rn?>";
file_put_contents("data.php",$array);
}
}
$cat = new cat();
if($_GET["action"] == "추가")
{
if(strlen($_POST["sortname"]) < 2)
{
에코 ' ';
에코 '';
종료;
}
if(file_exists("data.php"))
{
$cat->add_cat($_POST["sortname"],$_POST["sortlevel"]);
echo '';
에코 '';
종료;
}
else
{
$cat->wirte($_POST["sortname"],$_POST["sortlevel"]);
echo '';
에코 '';
종료;
종료;
}
}
if($_GET["action"] == "tpl")
{
echo '