您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 唐山分类信息网,免费分类信息发布

一个目录类

2024/8/12 6:19:49发布32次查看
//目录操作基类
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      $p .= $sar[$i]./;
    for($i=$j;$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
;
echo 当前路径 .$this->path.
\n;
echo path.\>\n;
echo \n;
for($i=0;$i  if($ar[$i][type] == dir)
    if($ar[$i][name] == .)
      echo .$ar[$i][name].\n;
    else
      echo .$ar[$i][name].\n;
echo   \n;
echo \n;
for($i=0;$i  if($ar[$i][type] == file)
    echo .$ar[$i][name].\n;
echo
;
  }
}    //openfiledialog
?>
//测试
$dir = new openfiledialog();
echo 服务器类型 .$dir->servermode.
;
echo 服务器路径 .$dir->serverpath.
;
echo 当前页路径 .$dir->pagepath.
;
echo 当前路径 .$dir->path.
;
$dir->execute($dirlist,$statpath);
?>
唐山分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录