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. *  
  17. * @param string $path 路径 
  18. * @param string $mode 属性 
  19. * @return string 如果已经存在则返回true,否则为flase 
  20. */ 
  21. function dir_create($path, $mode = 0777) { 
  22.  if(is_dir($path)) return TRUE; 
  23.  $ftp_enable = 0; 
  24.  $path = dir_path($path); 
  25.  $temp = explode('/', $path); 
  26.  $cur_dir = ''; 
  27.  $max = count($temp) - 1; 
  28.  for($i=0; $i<$max; $i++) { 
  29.   $cur_dir .= $temp[$i].'/'; 
  30.   if (@is_dir($cur_dir)) continue; 
  31.   @mkdir($cur_dir, 0777,true); 
  32.   @chmod($cur_dir, 0777); 
  33.  } 
  34.  return is_dir($path); 
  35. } 
  36. /** 
  37. * 拷贝目录及下面所有文件 
  38. *  
  39. * @param string $fromdir 原路径 
  40. * @param string $todir  目标路径 
  41. * @return string 如果目标路径不存在则返回false,否则为true 
  42. */ 
  43. function dir_copy($fromdir, $todir) { 
  44.  $fromdir = dir_path($fromdir); 
  45.  $todir = dir_path($todir); 
  46.  if (!is_dir($fromdir)) return FALSE; 
  47.  if (!is_dir($todir)) dir_create($todir); 
  48.  $list = glob($fromdir.'*'); 
  49.  if (!emptyempty($list)) { 
  50.   foreach($list as $v) { 
  51.    $path = $todir.basename($v); 
  52.    if(is_dir($v)) { 
  53.     dir_copy($v, $path); 
  54.    } else { 
  55.     copy($v, $path); 
  56.     @chmod($path, 0777); 
  57.    } 
  58.   } 
  59.  } 
  60.     return TRUE; 
  61. } 
  62. /** 
  63. * 转换目录下面的所有文件编码格式 
  64. *  
  65. * @param string $in_charset  原字符集 
  66. * @param string $out_charset 目标字符集 
  67. * @param string $dir   目录地址 
  68. * @param string $fileexts  转换的文件格式 
  69. * @return string 如果原字符集和目标字符集相同则返回false,否则为true 
  70. */ 
  71. function dir_iconv($in_charset, $out_charset, $dir, $fileexts = 'php|html|htm|shtml|shtm|js|txt|xml') { 
  72.  if($in_charset == $out_charset) return false; 
  73.  $list = dir_list($dir); 
  74.  foreach($list as $v) { 
  75.   if (preg_match("/.($fileexts)/i", $v) && is_file($v)){ 
  76.    file_put_contents($v, iconv($in_charset, $out_charset, file_get_contents($v))); 
  77.   } 
  78.  } 
  79.  return true; 
  80. } 
  81. /** 
  82. * 列出目录下所有文件 
  83. *  
  84. * @param string $path  路径 
  85. * @param string $exts  扩展名 
  86. * @param array $list  增加的文件列表 
  87. * @return array 所有满足条件的文件 
  88. */ 
  89. function dir_list($path, $exts = '', $list= array()) { 
  90.  $path = dir_path($path); 
  91.  $files = glob($path.'*'); 
  92.  foreach($files as $v) { 
  93.   $fileext = fileext($v); 
  94.   if (!$exts || preg_match("/.($exts)/i", $v)) { 
  95.    $list[] = $v; 
  96.    if (is_dir($v)) { 
  97.     $list = dir_list($v, $exts, $list); 
  98.    } 
  99.   } 
  100.  } 
  101.  return $list; 
  102. } 
  103. /** 
  104. * 设置目录下面的所有文件的访问和修改时间 
  105. *  
  106. * @param string $path  路径 
  107. * @param int  $mtime  修改时间 
  108. * @param int  $atime  访问时间 
  109. * @return array 不是目录时返回false,否则返回 true 
  110. */ 
  111. function dir_touch($path, $mtime = TIME, $atime = TIME) { 
  112.  if (!is_dir($path)) return false; 
  113.  $path = dir_path($path); 
  114.  if (!is_dir($path)) touch($path, $mtime, $atime); 
  115.  $files = glob($path.'*'); 
  116.  foreach($files as $v) { 
  117.   is_dir($v) ? dir_touch($v, $mtime, $atime) : touch($v, $mtime, $atime); 
  118.  } 
  119.  return true; 
  120. } 
  121. /** 
  122. * 目录列表 
  123. *  
  124. * @param string $dir  路径 
  125. * @param int  $parentid 父id 
  126. * @param array $dirs  传入的目录 
  127. * @return array 返回目录列表 
  128. */ 
  129. function dir_tree($dir, $parentid = 0, $dirs = array()) { 
  130.  global $id; 
  131.  if ($parentid == 0) $id = 0; 
  132.  $list = glob($dir.'*'); 
  133.  foreach($list as $v) { 
  134.   if (is_dir($v)) { 
  135.             $id++; 
  136.    $dirs[$id] = array('id'=>$id,'parentid'=>$parentid, 'name'=>basename($v), 'dir'=>$v.'/'); 
  137.    $dirs = dir_tree($v.'/', $id, $dirs); 
  138.   } 
  139.  } 
  140.  return $dirs; 
  141. } 
  142.  
  143. /** 
  144. * 删除目录及目录下面的所有文件 
  145. *  
  146. * @param string $dir  路径 
  147. * @return bool 如果成功则返回 TRUE,失败则返回 FALSE 
  148. */ 
  149. function dir_delete($dir) { 
  150.  $dir = dir_path($dir); 
  151.  if (!is_dir($dir)) return FALSE; 
  152.  $list = glob($dir.'*'); 
  153.  foreach($list as $v) { 
  154.   is_dir($v) ? dir_delete($v) : @unlink($v); 
  155.  } 
  156.     return @rmdir($dir); 
  157. } 
  158.  
  159. ?> 
分享到:
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技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……