要實(shí)現(xiàn)無限級(jí)分類,遞歸一般是第一個(gè)也是最容易想到的,但是遞歸一般被認(rèn)為占用資源的方法,所以很多系統(tǒng)是不考慮使用遞歸的!
成都創(chuàng)新互聯(lián)是一家專業(yè)提供東烏珠穆沁企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、HTML5、小程序制作等業(yè)務(wù)。10年已為東烏珠穆沁眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
可以參考以下代碼,但需要把你自己的數(shù)據(jù)庫鏈接,表等改一下就可以了
html
head
link href='style.css' rel=stylesheet
meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
script language="JavaScript" src="TreeMenu.js"/script
/head
body
?php
//基本變量設(shè)置
$GLOBALS["ID"] =1; //用來跟蹤下拉菜單的ID號(hào)
$layer=1; //用來跟蹤當(dāng)前菜單的級(jí)數(shù)
//連接數(shù)據(jù)庫
$Con=mysql_connect("localhost","root","1234");
mysql_select_db("wiki");
//提取一級(jí)菜單
$sql="SELECT * FROM wiki where pid=0";
$result=mysql_query($sql,$Con);
//如果一級(jí)菜單存在則開始菜單的顯示
if(mysql_num_rows($result)0) ShowTreeMenu($Con,$result,$layer,$ID);
//=============================================
//顯示樹型菜單函數(shù) ShowTreeMenu($con,$result,$layer)
//$con:數(shù)據(jù)庫連接
//$result:需要顯示的菜單記錄集
//layer:需要顯示的菜單的級(jí)數(shù)
//=============================================
function ShowTreeMenu($Con,$result,$layer)
{
//取得需要顯示的菜單的項(xiàng)目數(shù)
$numrows=mysql_num_rows($result);
//開始顯示菜單,每個(gè)子菜單都用一個(gè)表格來表示
echo "table cellpadding='0' cellspacing='0' border='0'";
for($rows=0;$rows$numrows;$rows++)
{
//將當(dāng)前菜單項(xiàng)目的內(nèi)容導(dǎo)入數(shù)組
$menu=mysql_fetch_array($result);
//提取菜單項(xiàng)目的子菜單記錄集
$sql="select * from wiki where pid=$menu[cid]";
$result_sub=mysql_query($sql,$Con);
echo "tr";
//如果該菜單項(xiàng)目有子菜單,則添加JavaScript onClick語句
if(mysql_num_rows($result_sub)0)
{
echo "td width='20'img src='folder.gif' border='0'/td";
echo "td class='Menu' onClick='javascript:ShowMenu(Menu".$GLOBALS["ID"].");'";
}
else
{
echo "td width='20'img src='file.gif' border='0'/td";
echo "td class='Menu'";
}
//如果該菜單項(xiàng)目沒有子菜單,并指定了超級(jí)連接地址,則指定為超級(jí)連接,
//否則只顯示菜單名稱
//if($menu[url]!="")
//echo "a href='$menu[cid]'$menu[name]/a";
//else
echo $menu['name'];
echo "
/td
/tr
";
//如果該菜單項(xiàng)目有子菜單,則顯示子菜單
if(mysql_num_rows($result_sub)0)
{
//指定該子菜單的ID和style,以便和onClick語句相對(duì)應(yīng)
echo "tr id=Menu".$GLOBALS["ID"]++." style='display:none'";
echo "td width='20' /td";
echo "td";
//將級(jí)數(shù)加1
$layer++;
//遞歸調(diào)用ShowTreeMenu()函數(shù),生成子菜單
ShowTreeMenu($Con,$result_sub,$layer);
//子菜單處理完成,返回到遞歸的上一層,將級(jí)數(shù)減1
$layer--;
echo "/td/tr";
}
//繼續(xù)顯示下一個(gè)菜單項(xiàng)目
}
echo "/table";
}
?
/body
/html
本文實(shí)例講述了php遞歸刪除目錄與文件的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
?php
function
deldir($path){
$dh
=
opendir($path);
var_dump(readdir($dh));
while(($d
=
readdir($dh))
!==
false){
if($d
==
'.'
||
$d
==
'..'){//如果為.或..
continue;
}
$tmp
=
$path.'/'.$d;
if(!is_dir($tmp)){//如果為文件
unlink($tmp);
}else{//如果為目錄
deldir($tmp);
}
}
closedir($dh);
rmdir($path);
}
$path
=
"./e";
deldir($path);
?
希望本文所述對(duì)大家的PHP程序設(shè)計(jì)有所幫助。