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文件操作的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did27780