一个FTP树状目录(PHP)

发表于:2007-05-25来源:作者:点击数: 标签:php做的树状目录ftp
结合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; idivColl.length;

结合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