一个php目录类

一个php目录类 责任编辑:ncic   更新日期:2007-4-5 <? //目录操作基类 class FileDirectory {  var $servermode;  var $serverpath;  //web服务器目录  var $pagepath;  //当前页目录  var $path;    //当前目录  var $ffblk;    //用于存储有关文件的信息  function FileDirectory() {   set_time_limit(0);  //设置网页运行时间,0不限   $this->serverpath = $GLOBALS[DOCUMENT_ROOT]."/";   $this->path = $this->pagepath = dirname(eregi_replace("//","/",$GLOBALS[SCRIPT_FILENAME]))."/";   if(eregi("Win32",getenv("SERVER_SOFTWARE")))    $this->servermode = "WIN32";  }  function first_dir() {   return dirname(eregi_replace("//","/",$GLOBALS[SCRIPT_FILENAME]));  }  //获取文件信息  function file_info($filename) {   $ar[name] = $filename;   $ar[type] = filetype($filename);   $ar[read] = is_readable($filename);   $ar[write] = is_writeable($filename);   $ar[exec] = is_executable($filename);   $ar[time] = date("Y-m-d H:i:s",filemtime($filename));   $ar[size] = filesize($filename);   $ar[style] = ($ar[type]=="dir"?"d":"-")        .($ar[read]?"r":"-")        .($ar[write]?"w":"-")        .($ar[exec]?"x":"-");   return $ar;  }  function format_path($path){   $tar = split("/",$path);   $sar = split("/",$this->path);   $t = count($tar);   $s = count($sar);   if($tar[$t-1] == "") $t--;   if($sar[$s-1] == "") $s--;   $j = 0;   while($tar[$j] == "..") {    $j++;    $s--;   }   $p = "";   for($i=0;$i<$s;$i++)    $p .= $sar[$i]."/";   for($i=$j;$i<$t;$i++)    if($tar[$i] != ".")     $p .= $tar[$i]."/";   $this->path = $p;  }  //获取目录信息到数组,成功返回时$this->path为目录的全路径  function array_dir($pathname=".") {   $old = $this->path;   if($this->servermode == "WIN32")    $path = str_replace("//","/",$pathname);   else    $path = $pathname;   $this->format_path($path);   if(! ($handle = @opendir($path))) {    $path = dirname($pathname);    $handle = opendir($path);   }   if(@chdir($this->path)) {    while ($file = readdir($handle)) {     $ar[] = $this->file_info($file);    }   }else    $this->path = $old;   closedir($handle);   return $ar;  } }  //FileDirectory定义结束 ?> <? //目录对话框 class OpenFileDialog extends FileDirectory {  var $filter = array("*.*");  function Execute($path,$statpath) {   if($path != "") {    chdir($statpath);    $this->path = $statpath;    $ar = $this->array_dir($path);   }else    $ar = $this->array_dir(".");   array_multisort($ar); echo " <style> td{font-size:9pt;} select{font-size:9pt;} #box{border:3px outset #ffffff} </style> <form action="; echo $GLOBALS[PHP_SELF]; echo " method=POST> <table bgcolor=#cccccc cellspacing=0 cellpadding=0> <tr><td> <table border=0 id=box> <tr><td> "; echo "当前路径 ".$this->path."<br>/n"; echo "<input type=hidden name=statpath value=/"".$this->path."/">/n"; echo "<select name=dirlist size=6 style=/"width:100px/" onChange=/"this.form.submit()/">/n"; for($i=0;$i<count($ar);$i++)  if($ar[$i][type] == "dir")   if($ar[$i][name] == ".")    echo "<option selected>".$ar[$i][name]."/n";   else    echo "<option>".$ar[$i][name]."/n"; echo "</select> /n"; echo "<select size=6 style=/"width:100px/">/n"; for($i=0;$i<count($ar);$i++)  if($ar[$i][type] == "file")   echo "<option>".$ar[$i][name]."/n"; echo " </select> </td></tr> </table> </td></tr> </table> </form> ";  } }  //OpenFileDialog ?> <? //测试 $dir = new OpenFileDialog(); echo "服务器类型 ".$dir->servermode."<br>"; echo "服务器路径 ".$dir->serverpath."<br>"; echo "当前页路径 ".$dir->pagepath."<br>"; echo "当前路径 ".$dir->path."<br>"; $dir->Execute($dirlist,$statpath); ?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值