<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      用PHP完成windows資源管理器風格的樹型菜單

      [摘要]以下是一個風格類似windows資源管理器的樹型菜單 將下面的腳本包含到你的頁面中 另外需要從資源管理器中截取一些gif圖片,祥見腳本中的注釋 菜單結構文件的格式為: tree level item text item link link target last item in subtree 例...
      以下是一個風格類似windows資源管理器的樹型菜單
      將下面的腳本包含到你的頁面中
      另外需要從資源管理器中截取一些gif圖片,祥見腳本中的注釋
      菜單結構文件的格式為:
      tree level item text item link link target last item in subtree
      例如
      .<b>Demo menu</b> javascript: alert('This is the demo menu for TreeMenu 1.0');
      ..<b>目錄1</b>
      ...<b>子目錄 1.1</b>
      ....item 1.1.1 javascript: alert('Item 1.1.1');
      ....item 1.1.2 javascript: alert('Item 1.1.1');
      ...item 1.2 javascript: alert('Item 1.2');
      ...item 1.3 javascript: alert('Item 1.3');
      ..<b>子目錄 2</b>
      ...item 2.1 javascript: alert('Item 2.1');
      ...item 2.2 javascript: alert('Item 2.2');
      ...<b>子目錄 2.3</b>
      ....item 2.3.1 javascript: alert('Item 2.3.1');
      ....item 2.3.2 javascript: alert('Item 2.3.2');
      <?php
      // file:tremenu.inc
      // PHP TreeMenu
      /////////////////
      // 初始化 //
      /////////////////

      $treefile = "demomenu.txt";//設置有菜單結構的文件

      if(isset($PATH_INFO))
      $script = $PATH_INFO;
      else
      $script = $SCRIPT_NAME;

      //以下圖片可截取windows資源管理器中的相應位置的圖

      $img_expand = "tree_expand.gif";//形如資源管理器中可擴展節點+
      $img_collapse = "tree_collapse.gif";//形如資源管理器中已擴展節點-
      $img_line = "tree_vertline.gif";//形如
      $img_split = "tree_split.gif";//形如 -
      $img_end = "tree_end.gif";//形如L
      $img_leaf = "tree_leaf.gif";//形如o
      $img_spc = "tree_space.gif";//空白圖

      //以下是菜單處理腳本

      $maxlevel=0;
      $cnt=0;

      $fd = fopen($treefile, "r");
      if ($fd==0) die("treemenu.inc : Unable to open file ".$treefile);
      while ($buffer = fgets($fd, 4096))
      {
      $tree[$cnt][0]=strspn($buffer,".");
      $tmp=rtrim(substr($buffer,$tree[$cnt][0]));
      $node=explode(" ",$tmp);
      $tree[$cnt][1]=$node[0];
      $tree[$cnt][2]=$node[1];
      $tree[$cnt][3]=$node[2];
      $tree[$cnt][4]=0;
      if ($tree[$cnt][0] > $maxlevel) $maxlevel=$tree[$cnt][0];
      $cnt++;
      }
      fclose($fd);

      for ($i=0; $i<count($tree); $i++)
      {
      $expand[$i]=0;
      $visible[$i]=0;
      $levels[$i]=0;
      }

      if ($p!="")
      $explevels = explode(" ",$p);
      $i=0;
      while($i<count($explevels))
      {
      $expand[$explevels[$i]]=1;
      $i++;
      }

      $lastlevel=$maxlevel;
      for ($i=count($tree)-1; $i>=0; $i--)
      {
      if ( $tree[$i][0] < $lastlevel )
      for ($j=$tree[$i][0]+1; $j <= $maxlevel; $j++)
      $levels[$j]=0;
      if ( $levels[$tree[$i][0]]==0 )
      {
      $levels[$tree[$i][0]]=1;
      $tree[$i][4]=1;
      }
      else
      $tree[$i][4]=0;
      $lastlevel=$tree[$i][0];
      }

      for ($i=0; $i < count($tree); $i++)
      if ($tree[$i][0]==1)
      $visible[$i]=1;
      for ($i=0; $i < count($explevels); $i++)
      {
      $n=$explevels[$i];
      if ( ($visible[$n]==1) && ($expand[$n]==1) )
      {
      $j=$n+1;
      while ( $tree[$j][0] > $tree[$n][0] )
      {
      if ($tree[$j][0]==$tree[$n][0]+1) $visible[$j]=1;
      $j++;
      }
      }
      }

      for ($i=0; $i<$maxlevel; $i++)
      $levels[$i]=1;

      $maxlevel++;

      echo "<table cellspacing=0 cellpadding=0 border=0 cols=".($maxlevel+3).">\n";
      echo "<tr>";
      for ($i=0; $i<$maxlevel; $i++)
      echo "<td width=16></td>";
      echo "<td width=100%>&nbsp;</td></tr>\n";
      $cnt=0;
      while ($cnt<count($tree))
      {
      if ($visible[$cnt])
      {
      echo "<tr>";
      $i=0;
      while ($i<$tree[$cnt][0]-1)
      {
      if ($levels[$i]==1)
      echo "<td><a name='$cnt'></a><img src=\"".$img_line."\"></td>";
      else
      echo "<td><a name='$cnt'></a><img src=\"".$img_spc."\"></td>";
      $i++;
      }
      if ($tree[$cnt][4]==1)
      {
      echo "<td><img src=\"".$img_end."\"></td>";
      $levels[$tree[$cnt][0]-1]=0;
      }
      else
      {
      echo "<td><img src=\"".$img_split."\"></td>";
      $levels[$tree[$cnt][0]-1]=1;
      }

      if ($tree[$cnt+1][0]>$tree[$cnt][0])
      {

      $i=0; $params="?p=";
      while($i<count($expand))
      {
      if ( ($expand[$i]==1) && ($cnt!=$i) ($expand[$i]==0 && $cnt==$i))
      {
      $params=$params.$i;
      $params=$params." ";
      }
      $i++;
      }

      if ($expand[$cnt]==0)
      echo "<td><a href=\"".$script.$params."#$cnt\"><img src=\"".$img_expand."\" border=no></a></td>";
      else
      echo "<td><a href=\"".$script.$params."#$cnt\"><img src=\"".$img_collapse."\" border=no></a></td>";
      }
      else
      echo "<td><img src=\"".$img_leaf."\"></td>";

      if ($tree[$cnt][2]=="")
      echo "<td colspan=".($maxlevel-$tree[$cnt][0]).">".$tree[$cnt][1]."</td>";
      else
      echo "<td colspan=".($maxlevel-$tree[$cnt][0])."><a href=\"".$tree[$cnt][2]."\" target=\"".$tree[$cnt][3]."\">".$tree[$cnt][1]."</a></td>";
      echo "</tr>\n";
      }
      $cnt++;
      }
      echo "</table>\n";
      ?> 


      日韩精品一区二区三区高清