php文件目录常用操作
发布:smiling 来源: PHP粉丝网 添加日期:2014-09-05 10:17:30 浏览: 评论:0
- <?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 (!emptyempty($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);
- }
- ?>
Tags: php文件操作 php目录操作
- 上一篇:写入文本文件txt的PHP代码
- 下一篇:php 获取目录下所有文件实现代码
相关文章
- ·PHP 文件操作概述 (2013-11-14)
- ·PHP开发中文件操作疑难问答(2013-11-27)
- ·php文件操作(删除、修改时间、改名、获取文件所有者)(2014-09-19)
- ·php读取大文件最好的实现方法(2015-04-10)
- ·PHP文件操作方法汇总(2021-06-06)
- ·PHP文件操作之获取目录下文件与计算相对路径的方法(2021-07-04)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)