一个FTP树状目录(PHP)

发表于:2007-07-01来源:作者:点击数: 标签:
结合js做的,具体的话相应要做修改,比如目录制 [HTML] script language=" Java Script" with (document) { write("STYLE TYPE=@#text/css@#"); write(".child ") write("/STYLE"); } function initIt(){ divColl = document.all.tags("DIV"); for (i=0; idivC

结合js做的,具体的话相应要做修改,比如目录制
[HTML]
<script language="JavaScript">
with (document) {
        write("<STYLE TYPE=@#text/css@#>");
        write(".child ")
        write("</STYLE>");
    }
function initIt(){
        divColl = document.all.tags("DIV");
        for (i=0; i<divColl.length; i++) {
            whichEl = divColl(i);
            if (whichEl.className == "child") whichEl.style.display = "none";
        }

}
function expandIt(el) {

        whichEl = eval(el + "Child");
        if (whichEl.style.display == "none") {
            whichEl.style.display = "block";
        }
        else {
            whichEl.style.display = "none";
        }
    }
onload = initIt;
</script>
<LINK href=../main.css rel=stylesheet type=text/css>
<?
function hsort($a)
  {
    $b=@#@#;
    $c=@#@#;
    for($i=0;$i<count($a);$i++)
      {
        $j=substr($a[$i],0,1);
        if($j==@#d@#)
          if($i==0)
            $b=$a[$i];
          else
            $b.=@#&&%%@#.$a[$i];
        else
          if($i==0)
            $c=$a[$i];
          else
            $c.=@#&&%%@#.$a[$i];
      }
    if($b==@#@#)
      {
        $ff=explode(@#&&%%@#,$c);
        return $ff;
      }
    else
      {
        if($c==@#@#)
          {
            $ff=explode(@#&&%%@#,$b);
            return $ff;
          }
        else
          {
            $f1=$b.@#&&%%@#.$c;
            $ff=explode(@#&&%%@#,$f1);
            return $ff;
          }
      }
  }
require("./class/ftp.php");
$HOST=@#localhost@#;
$USER=@#huyang@#;
$PASS=@#huyang@#;
function ftpurl($url,$konge,$in,$name)
  {
    if($konge>10)
      {}
    else
      {
        global $HOST,$USER,$PASS;
        $ftp=new ftp;
        $ftp->init($HOST,$USER,$PASS);
        $ftp->initpwd($url);
        $a=$ftp->mulu();
        $ftp->close();
        $a=hsort($a);
        if($in!=1)
          {
            $sss=$name.@#Child@#;
            echo@#<div id="@#.$sss.@#" class="child">@#;
          }
        $v=0;
        for($i=1;$i<count($a);$i++)
          {
            $aa=explode(@# @#,$a[$i]);
            $j=substr($aa[0],0,1);
            if($j==@#t@#)
              {}
            elseif($j==@#d@#)
              {
                $c=count($aa);
                $c-=1;
                if(($aa[$c]==@#.@#)||($aa[$c]==@#..@#))
                  {}
                else
                  {
                    $v++;
                    if($in==1)
                      {
                        $name1=@#URL@#.$v.@#Parent@#;
                        $names=@#URL@#.$v;
                        echo@#<div id="@#.$name1.@#" class="parent">@#;
                        echo@#<a href="#" onClick="expandIt(@#;
                        echo"@#".$names."@#";
                        echo@#); return false" ><img src="img/plus.gif" border=0>@#.$aa[$c].@#</a></div>
                             @#;
                      }
                    else
                      {
                        $names=$name.@#_@#.$v;
                        echo@#<a href="#" onClick="expandIt(@#;
                        echo"@#".$names."@#";
                        echo@#); return false" >@#;
                        for($hu=0;$hu<$konge;$hu++)
                          echo@#<img src="img/spacer.gif"  border=0 alt="">@#;
                        echo@#<img src="img/plus.gif"  border=0>@#.$aa[$c].@#</a><br>
                             @#;
                      }
                    $url1=$url.@#/@#.$aa[$c];//may be need to change
                    $konge1=$konge+1;
                    ftpurl($url1,$konge1,0,$names);
                  }
              }
            else
              {
                $c=count($aa);
                $c-=1;
                if($in==1)
                  {
                    $name=@#URL@#.$i.@#Parent@#;
                    $name1=@#URL@#.$i;
                    echo@#<div id="@#.$name.@#" class="parent">@#;
                    echo@#<a href="#"><img src="img/open.gif" border=0>@#.$aa[$c].@#</a></div>
                    @#;
                  }
                else
                  {
                    echo@#<a href="#">@#;
                    for($hu=0;$hu<$konge;$hu++)
                    echo@#<img src="img/spacer.gif"  border=0 alt="">@#;
                    echo@#<img src="img/open.gif"  border=0>@#.$aa[$c].@#</a><br>
                    @#;
                  }
              }
          }
        if($in!=1)
          echo@#</div>@#;
      }
  }
$ftp=new ftp;
$ftp->init($HOST,$USER,$PASS);
$s=$ftp->pwd();
$ftp->close();
ftpurl($s,0,1,@#URL1@#); //$s may be need to change
?>
[/HTML]
以下为类文件
[HTML]
<?
class ftp
  {
    var $id,$tid,$HOST,$USER,$PASS,$pwd;
    var $china_mulu;
    function init($HOST,$USER,$PASS)
      {
        $this->HOST=$HOST;
        $this->USER=$USER;
        $this->PASS=$PASS;
        $this->setup();
      }
    function setup()
      {
        if($this->HOST==@#@#)$this->HOST=@#localhost@#;
        if($this->USER==@#@#)$this->USER=@#@#;
        if($this->PASS==@#@#)$this->PASS=@#@#;
        $this->id=ftp_connect($this->HOST) or $this->ftp_msg("can not connect ftp");
        $this->tid=ftp_login($this->id,$this->USER,$this->PASS) or $this->ftp_msg("can not open it");
      }
    function pwd()//取得路径
      {
        $this->pwd=ftp_pwd($this->id);
        return $this->pwd;
      }
    function initpwd($pwd)
      {
        $this->pwd=$pwd;
      }
    function mulu()//取得目录
      {
        if(!$this->pwd)
          $this->pwd=ftp_pwd($this->id);
        $this->chinamulu=ftp_rawlist($this->id,$this->pwd);
        return $this->chinamulu;
      }
    function upmulu()//返回上级目录
      {
        $a=ftp_cdup($this->id) or $this->ftp_msg("already be the uppest!!");
      }
    function close()
      {
        ftp_quit($this->id);
      }
    function ftp_msg($err)
      {
        print"<font color=red><h1><center>$err</center></h1></font>";
      }
  }
?>
[/HTML]

原文转自:http://www.ltesting.net