php专区

 首页 > php专区 > PHP高级 > 文件上传 > php文件目录常用操作 - php文件操作

php文件目录常用操作 - php文件操作

分享到:
【字体:
导读:
          ?php/***转化为/**@paramstring$path路径*@returnstring路径*/functiondir_path($path){$path=str_replace(#39;\#39;,#39;/#39;,$path......

php文件目录常用操作

  1. /** 
  2.  
  3. * 转化 为 / 
  4.  
  5. * @param string $path 路径 
  6. * @return string 路径 
  7. */ 
  8. function dir_path($path) { 
  9.  $path = str_replace('', '/', $path); 
  10.  if(substr($path, -1) != '/'$path = $path.'/'
  11. //开源代码phpfensi.com 
  12.  return $path
  13. /** 
  14. * 创建目录 
  15.  
  16. * @param string $path 路径 
  17. * @param string $mode 属性 
  18. * @return string 如果已经存在则返回true,否则为flase 
  19. */ 
  20. function dir_create($path$mode = 0777) { 
  21.  if(is_dir($path)) return TRUE; 
  22.  $ftp_enable = 0; 
  23.  $path = dir_path($path); 
  24.  $temp = explode('/'$path); 
  25.  $cur_dir = ''
  26.  $max = count($temp) - 1; 
  27.  for($i=0; $i<$max$i++) { 
  28.   $cur_dir .= $temp[$i].'/'
  29.   if (@is_dir($cur_dir)) continue
  30.   @mkdir($cur_dir, 0777,true); 
  31.   @chmod($cur_dir, 0777); 
  32.  } 
  33.  return is_dir($path); 
  34. /** 
  35. * 拷贝目录及下面所有文件 
  36.  
  37. * @param string $fromdir 原路径 
  38. * @param string $todir  目标路径 
  39. * @return string 如果目标路径不存在则返回false,否则为true 
  40. */ 
  41. function dir_copy($fromdir$todir) { 
  42.  $fromdir = dir_path($fromdir); 
  43.  $todir = dir_path($todir); 
  44.  if (!is_dir($fromdir)) return FALSE; 
  45.  if (!is_dir($todir)) dir_create($todir); 
  46.  $list = glob($fromdir.'*'); 
  47.  if (!emptyempty($list)) { 
  48.   foreach($list as $v) { 
  49.    $path = $todir.basename($v); 
  50.    if(is_dir($v)) { 
  51.     dir_copy($v$path); 
  52.    } else { 
  53.     copy($v$path); 
  54.     @chmod($path, 0777); 
  55.    } 
  56.   } 
  57.  } 
  58.     return TRUE; 
  59. /** 
  60. * 转换目录下面的所有文件编码格式 
  61.  
  62. * @param string $in_charset  原字符集 
  63. * @param string $out_charset 目标字符集 
  64. * @param string $dir   目录地址 
  65. * @param string $fileexts  转换的文件格式 
  66. * @return string 如果原字符集和目标字符集相同则返回false,否则为true 
  67. */ 
  68. function dir_iconv($in_charset$out_charset$dir$fileexts = 'php|html|htm|shtml|shtm|js|txt|xml') { 
  69.  if($in_charset == $out_charsetreturn false; 
  70.  $list = dir_list($dir); 
  71.  foreach($list as $v) { 
  72.   if (preg_match("/.($fileexts)/i"$v) && is_file($v)){ 
  73.    file_put_contents($v, iconv($in_charset$out_charsetfile_get_contents($v))); 
  74.   } 
  75.  } 
  76.  return true; 
  77. /** 
  78. * 列出目录下所有文件 
  79.  
  80. * @param string $path  路径 
  81. * @param string $exts  扩展名 
  82. * @param array $list  增加的文件列表 
  83. * @return array 所有满足条件的文件 
  84. */ 
  85. function dir_list($path$exts = ''$listarray()) { 
  86.  $path = dir_path($path); 
  87.  $files = glob($path.'*'); 
  88.  foreach($files as $v) { 
  89.   $fileext = fileext($v); 
  90.   if (!$exts || preg_match("/.($exts)/i"$v)) { 
  91.    $list[] = $v
  92.    if (is_dir($v)) { 
  93.     $list = dir_list($v$exts$list); 
  94.    } 
  95.   } 
  96.  } 
  97.  return $list
  98. /** 
  99. * 设置目录下面的所有文件的访问和修改时间 
  100.  
  101. * @param string $path  路径 
  102. * @param int  $mtime  修改时间 
  103. * @param int  $atime  访问时间 
  104. * @return array 不是目录时返回false,否则返回 true 
  105. */ 
  106. function dir_touch($path$mtime = TIME, $atime = TIME) { 
  107.  if (!is_dir($path)) return false; 
  108.  $path = dir_path($path); 
  109.  if (!is_dir($path)) touch($path$mtime$atime); 
  110.  $files = glob($path.'*'); 
  111.  foreach($files as $v) { 
  112.   is_dir($v) ? dir_touch($v$mtime$atime) : touch($v$mtime$atime); 
  113.  } 
  114.  return true; 
  115. /** 
  116. * 目录列表 
  117.  
  118. * @param string $dir  路径 
  119. * @param int  $parentid 父id 
  120. * @param array $dirs  传入的目录 
  121. * @return array 返回目录列表 
  122. */ 
  123. function dir_tree($dir$parentid = 0, $dirs = array()) { 
  124.  global $id
  125.  if ($parentid == 0) $id = 0; 
  126.  $list = glob($dir.'*'); 
  127.  foreach($list as $v) { 
  128.   if (is_dir($v)) { 
  129.             $id++; 
  130.    $dirs[$id] = array('id'=>$id,'parentid'=>$parentid'name'=>basename($v), 'dir'=>$v.'/'); 
  131.    $dirs = dir_tree($v.'/'$id$dirs); 
  132.   } 
  133.  } 
  134.  return $dirs
  135.  
  136. /** 
  137. * 删除目录及目录下面的所有文件 
  138.  
  139. * @param string $dir  路径 
  140. * @return bool 如果成功则返回 TRUE,失败则返回 FALSE 
  141. */ 
  142. function dir_delete($dir) { 
  143.  $dir = dir_path($dir); 
  144.  if (!is_dir($dir)) return FALSE; 
  145.  $list = glob($dir.'*'); 
  146.  foreach($list as $v) { 
  147.   is_dir($v) ? dir_delete($v) : @unlink($v); 
  148.  } 
  149.     return @rmdir($dir); 
  150.  
  151. ?> 
分享到:
php 获取目录下所有文件实现代码 - php文...
php 获取目录下所有文件实现代码 class a{       private $img_dir;          private $img_path;          private $face_files = array();          private $allow_extension = array();  private function get_face_files()...
写入文本文件txt的PHP代码 - php文件操作
写入文本文件txt的PHP代码 PHP写入文本文件和C语言非常类似,用的函数也一致,读取文件用fopen,写入文件用fwrite,结束用fclose,要注意的是打开并写入新的文件用\"w\"标识,读取文件用\"r\"标识,在原有文件上继续写入用\"a\"标识,同时windows换行符是"rn",linux换行符是"n" . PHP记录IP的函数是 ...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……