PHP目录操作实例总结


Posted in PHP onSeptember 27, 2016

本文实例总结了PHP目录操作方法。分享给大家供大家参考,具体如下:

目录操作

新建目录:mkdir(路径,权限,递归创建)

删除目录:rmdir()

移动(改名):rename()

获取目录内容

//打开目录

目录句柄 = opendir()

//读取目录

文件名 = readdir(目录句柄)

依次读取文件名,同时向下移动文件句柄指针,读取不到则返回false

//关闭目录

closedir()

递归读取目录内容:

<?php
showDir('../../file');
function showDir($path,$dep=0){
 $pos = opendir($path);
 while(false!==$file=readdir($pos)){
  if($file=='.'||$file=='..') continue;
  echo str_repeat(" ",$dep*4),$file.'</br>';
  if(is_dir($path.'/'.$file)){
   $func = __FUNCTION__;
   $func($path.'/'.$file,$dep+1);
  }
 }
}

运行效果图如下:

 PHP目录操作实例总结

<?php
$res = showDir('../../file');
echo '<pre>';
print_r($res);
function showDir($path){
 $pos = opendir($path);
 $next = array();
 while(false!==$file=readdir($pos)){
  if($file=='.'||$file=='..') continue;
  $fileinfo = array();
  $fileinfo['name'] = $file;
  if(is_dir($path.'/'.$file)){
   $fileinfo['type'] = 'dir';
   $func = __FUNCTION__;
   $fileinfo['next'] = $func($path.'/'.$file);
  }else{
   $fileinfo['type'] = 'file';
  }
  $next[] = $fileinfo;
 }
 closedir($pos);
 return $next;
}

运行效果图如下:

 PHP目录操作实例总结

递归删除目录:

<?php
showDir('../../file/sim');
function showDir($path,$dep=0){
 $pos = opendir($path);
 while(false!==$file=readdir($pos)){
  if($file=='.'||$file=='..') continue;
//  echo str_repeat(" ",$dep*4),$file.'</br>';
  if(is_dir($path.'/'.$file)){
   $func = __FUNCTION__;
   $func($path.'/'.$file,$dep+1);
  }else{
   unlink($path.'/'.$file);
  }
 }
 rmdir($path);
 closedir($pos);
}

目录文件编码问题:

展示时,将操作系统编码转换为响应数据编码

windows为gbk,项目 utf-8

iconv('gbk',utf-8',file);

代码地址存在中文:需要转换为系统编码

iconv(utf-8','gbk',file);

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP中函数内引用全局变量的方法
Oct 20 PHP
PHP编码规范之注释和文件结构说明
Jul 09 PHP
PHP管理内存函数 memory_get_usage()使用介绍
Sep 23 PHP
解析php函数method_exists()与is_callable()的区别
Jun 21 PHP
50个PHP程序性能优化的方法
Jun 02 PHP
php简单实现多字节字符串翻转的方法
Mar 31 PHP
PHP中preg_match正则匹配中的/u、/i、/s含义
Apr 17 PHP
Apache服务器下防止图片盗链的办法
Jul 06 PHP
php单链表实现代码分享
Jul 04 PHP
iOS10推送通知开发教程
Sep 19 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
Jul 19 PHP
PhpStorm 2020.3:新增开箱即用的PHP 8属性(推荐)
Oct 30 PHP
PHP文件操作实例总结
Sep 27 #PHP
PHP命名空间namespace用法实例分析
Sep 27 #PHP
PHP7标量类型declare用法实例分析
Sep 26 #PHP
PHP7新增运算符用法实例分析
Sep 26 #PHP
PHP7匿名类用法分析
Sep 26 #PHP
PHP7常量数组用法分析
Sep 26 #PHP
PHP7.1方括号数组符号多值复制及指定键值赋值用法分析
Sep 26 #PHP
You might like
如何给phpcms v9增加类似于phpcms 2008中的关键词表
2013/07/01 PHP
php实现的DateDiff和DateAdd时间函数代码分享
2014/08/16 PHP
详解js异步文件加载器
2016/01/24 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
2017/01/17 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
极酷的javascirpt,让你随意编辑任何网页
2007/02/25 Javascript
关于取不到由location.href提交而来的上级页面地址的解决办法
2009/07/30 Javascript
三级下拉菜单的js实现代码
2011/05/23 Javascript
基于jquery实现状态限定编辑的代码
2012/02/11 Javascript
javascript中获取下个月一号,是星期几
2012/06/01 Javascript
前后台交互过程中json格式如何解析以及如何生成
2012/12/26 Javascript
jQuery获取字符串中出现最多的数
2016/02/22 Javascript
第一次接触神奇的Bootstrap网格系统
2016/07/27 Javascript
JS对象与json字符串相互转换实现方法示例
2018/06/14 Javascript
Vue.js 2.x之组件的定义和注册图文详解
2018/06/19 Javascript
Vue 实时监听窗口变化 windowresize的两种方法
2018/11/06 Javascript
详解Vue中使用插槽(slot)、聚类插槽
2019/04/12 Javascript
Vue调用后端java接口的实例代码
2019/10/28 Javascript
小程序分享链接onShareAppMessage的具体用法
2020/05/22 Javascript
vue中element 的upload组件发送请求给后端操作
2020/09/07 Javascript
Python 编码Basic Auth使用方法简单实例
2017/05/25 Python
PyQt5 加载图片和文本文件的实例
2019/06/14 Python
python控制台实现tab补全和清屏的例子
2019/08/20 Python
Selenium及python实现滚动操作多种方法
2020/07/21 Python
Django mysqlclient安装和使用详解
2020/09/17 Python
一款纯css3实现的响应式导航
2014/10/31 HTML / CSS
JD Sports马来西亚:英国领先的运动鞋和运动服饰零售商
2018/03/13 全球购物
应届生财务管理求职信
2013/11/06 职场文书
行政主管岗位职责
2013/11/18 职场文书
网络宣传方案
2014/03/15 职场文书
机关作风建设整改方案
2014/10/27 职场文书
超市食品安全承诺书
2015/04/29 职场文书
教师节班会开场白
2015/06/01 职场文书
2019个人年度目标制定攻略!
2019/07/12 职场文书
教师学期述职自我鉴定
2019/08/16 职场文书
MySQL高速缓存启动方法及参数详解(query_cache_size)
2021/07/01 MySQL