好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

php文件目录常用操作

<?php  /**     * 转化 为 /   *    * @param string $path 路径   * @return string 路径   */   function  dir_path( $path ) {    $path  =  str_replace ( '\', ' /',  $path );    if ( substr ( $path , -1) !=  '/' )  $path  =  $path . '/' ;  //开源代码phpfensi.com     return   $path ;  }  /**   * 创建目录   *    * @param string $path 路径   * @param string $mode 属性   * @return string 如果已经存在则返回true,否则为flase   */   function  dir_create( $path ,  $mode  = 0777) {    if ( is_dir ( $path ))  return  TRUE;    $ftp_enable  = 0;    $path  = dir_path( $path );    $temp  =  explode ( '/' ,  $path );    $cur_dir  =  '' ;    $max  =  count ( $temp ) - 1;    for ( $i =0;  $i < $max ;  $i ++) {     $cur_dir  .=  $temp [ $i ]. '/' ;     if  (@ is_dir ( $cur_dir ))  continue ;    @ mkdir ( $cur_dir , 0777,true);    @ chmod ( $cur_dir , 0777);   }    return   is_dir ( $path );  }  /**   * 拷贝目录及下面所有文件   *    * @param string $fromdir 原路径   * @param string $todir  目标路径   * @return string 如果目标路径不存在则返回false,否则为true   */   function  dir_copy( $fromdir ,  $todir ) {    $fromdir  = dir_path( $fromdir );    $todir  = dir_path( $todir );    if  (! is_dir ( $fromdir ))  return  FALSE;    if  (! is_dir ( $todir )) dir_create( $todir );    $list  =  glob ( $fromdir . '*' );    if  (! empty empty ( $list )) {     foreach ( $list   as   $v ) {      $path  =  $todir . basename ( $v );      if ( is_dir ( $v )) {      dir_copy( $v ,  $path );     }  else  {       copy ( $v ,  $path );      @ chmod ( $path , 0777);     }    }   }       return  TRUE;  }  /**   * 转换目录下面的所有文件编码格式   *    * @param string $in_charset  原字符集   * @param string $out_charset 目标字符集   * @param string $dir   目录地址   * @param string $fileexts  转换的文件格式   * @return string 如果原字符集和目标字符集相同则返回false,否则为true   */   function  dir_iconv( $in_charset ,  $out_charset ,  $dir ,  $fileexts  =  'php|html|htm|shtml|shtm|js|txt|xml' ) {    if ( $in_charset  ==  $out_charset )  return  false;    $list  = dir_list( $dir );    foreach ( $list   as   $v ) {     if  (preg_match( "/.($fileexts)/i" ,  $v ) &&  is_file ( $v )){      file_put_contents ( $v , iconv( $in_charset ,  $out_charset ,  file_get_contents ( $v )));    }   }    return  true;  }  /**   * 列出目录下所有文件   *    * @param string $path  路径   * @param string $exts  扩展名   * @param array $list  增加的文件列表   * @return array 所有满足条件的文件   */   function  dir_list( $path ,  $exts  =  '' ,  $list =  array ()) {    $path  = dir_path( $path );    $files  =  glob ( $path . '*' );    foreach ( $files   as   $v ) {     $fileext  = fileext( $v );     if  (! $exts  || preg_match( "/.($exts)/i" ,  $v )) {      $list [] =  $v ;      if  ( is_dir ( $v )) {       $list  = dir_list( $v ,  $exts ,  $list );     }    }   }    return   $list ;  }  /**   * 设置目录下面的所有文件的访问和修改时间   *    * @param string $path  路径   * @param int  $mtime  修改时间   * @param int  $atime  访问时间   * @return array 不是目录时返回false,否则返回 true   */   function  dir_touch( $path ,  $mtime  = TIME,  $atime  = TIME) {    if  (! is_dir ( $path ))  return  false;    $path  = dir_path( $path );    if  (! is_dir ( $path )) touch( $path ,  $mtime ,  $atime );    $files  =  glob ( $path . '*' );    foreach ( $files   as   $v ) {     is_dir ( $v ) ? dir_touch( $v ,  $mtime ,  $atime ) : touch( $v ,  $mtime ,  $atime );   }    return  true;  }  /**   * 目录列表   *    * @param string $dir  路径   * @param int  $parentid 父id   * @param array $dirs  传入的目录   * @return array 返回目录列表   */   function  dir_tree( $dir ,  $parentid  = 0,  $dirs  =  array ()) {    global   $id ;    if  ( $parentid  == 0)  $id  = 0;    $list  =  glob ( $dir . '*' );    foreach ( $list   as   $v ) {     if  ( is_dir ( $v )) {               $id ++;      $dirs [ $id ] =  array ( 'id' => $id , 'parentid' => $parentid ,  'name' => basename ( $v ),  'dir' => $v . '/' );      $dirs  = dir_tree( $v . '/' ,  $id ,  $dirs );    }   }    return   $dirs ;  }    /**   * 删除目录及目录下面的所有文件   *    * @param string $dir  路径   * @return bool 如果成功则返回 TRUE,失败则返回 FALSE   */   function  dir_delete( $dir ) {    $dir  = dir_path( $dir );    if  (! is_dir ( $dir ))  return  FALSE;    $list  =  glob ( $dir . '*' );    foreach ( $list   as   $v ) {     is_dir ( $v ) ? dir_delete( $v ) : @unlink( $v );   }       return  @ rmdir ( $dir );  }    ?> 

查看更多关于php文件目录常用操作 - php文件操作的详细内容...

  阅读:64次