最模板 - 外贸网站建设,外贸网站模板

最模板

当前位置: 首页 > 建站教程 > php教程 >

php文件目录常用操作

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