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 addslashes 函数详细分析说明
Jun 23 PHP
php学习笔记 类的声明与对象实例化
Jun 13 PHP
深入分析php中接口与抽象类的区别
Jun 08 PHP
PHP写的加密函数,支持私人密钥(详细介绍)
Jun 09 PHP
php技术实现加载字体并保存成图片
Jul 27 PHP
PHP实现mysqli批量执行多条语句的方法示例
Jul 22 PHP
PHP实现执行外部程序的方法详解
Aug 17 PHP
PDO::beginTransaction讲解
Jan 27 PHP
PHP-FPM的配置与优化讲解
Mar 15 PHP
浅谈laravel数据库查询返回的数据形式
Oct 21 PHP
php利用ZipArchive类操作文件的实例
Jan 21 PHP
浅谈PHP7中的一些小技巧
May 29 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
收音机玩机评测 406 篇视频合集
2020/03/11 无线电
Zend Framework教程之Autoloading用法详解
2016/03/08 PHP
PHP基于递归实现的约瑟夫环算法示例
2017/08/27 PHP
php use和include区别总结
2019/10/13 PHP
关于B/S判断浏览器断开的问题讨论
2008/10/29 Javascript
用JavaScript实现单继承和多继承的简单方法
2009/03/29 Javascript
jquery 模拟类搜索框自动完成搜索提示功能(改进)
2010/05/24 Javascript
浅谈jquery中的each方法$.each、this.each、$.fn.each
2016/06/23 Javascript
webix+springmvc session超时跳转登录页面
2016/10/30 Javascript
详解MVC如何使用开源分页插件(shenniu.pager.js)
2016/12/16 Javascript
JavaScript仿支付宝6位数字密码输入框
2016/12/29 Javascript
vuejs2.0运用原生js实现简单的拖拽元素功能示例
2017/02/24 Javascript
vue-awesome-swiper 基于vue实现h5滑动翻页效果【推荐】
2018/11/08 Javascript
微信小程序dom操作的替代思路实例分析
2018/12/06 Javascript
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
详解JS判断页面是在手机端还是在PC端打开的方法
2019/04/26 Javascript
vue项目中引入Sass实例方法
2019/08/27 Javascript
使用layui 的layedit定义自己的toolbar方法
2019/09/18 Javascript
详解Python中映射类型的内建函数和工厂函数
2015/08/19 Python
python如何定义带参数的装饰器
2018/03/20 Python
python 请求服务器的实现代码(http请求和https请求)
2018/05/25 Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
2018/07/09 Python
解决python中使用PYQT时中文乱码问题
2019/06/17 Python
python点击鼠标获取坐标(Graphics)
2019/08/10 Python
Linux下通过python获取本机ip方法示例
2019/09/06 Python
python 解决cv2绘制中文乱码问题
2019/12/23 Python
Pandas时间序列基础详解(转换,索引,切片)
2020/02/26 Python
HTML5 video视频字幕的使用和制作方法
2018/05/03 HTML / CSS
Becextech新西兰:数码单反相机和手机在线商店
2018/04/27 全球购物
环境工程与管理大学毕业生求职信
2013/10/02 职场文书
校园演讲稿汇总
2014/05/21 职场文书
兽医医药专业求职信
2014/07/27 职场文书
法制教育讲座心得体会
2016/01/14 职场文书
教师节作文之小学四年级
2019/09/03 职场文书
Python中threading库实现线程锁与释放锁
2021/05/17 Python
动态规划之使用备忘录来改进Javascript函数
2022/04/07 Javascript