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 09 PHP
PHP 表单提交给自己
Jul 24 PHP
PHP set_time_limit(0)长连接的实现分析
Mar 02 PHP
自己在做项目过程中学到的PHP知识收集
Aug 20 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
Jun 19 PHP
win7 64位系统 配置php最新版开发环境(php+Apache+mysql)
Aug 15 PHP
详解PHP实现异步调用的4种方法
Mar 14 PHP
浅谈PHP中其他类型转化为Bool类型
Mar 28 PHP
修改Laravel5.3中的路由文件与路径
Aug 10 PHP
php获取远程图片并下载保存到本地的方法分析
Oct 08 PHP
PHP开发APP端微信支付功能
Feb 17 PHP
ThinkPHP5 框架引入 Go AOP,PHP AOP编程项目详解
May 12 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
qq登录,新浪微博登录接口申请过程中遇到的问题
2014/07/22 PHP
PHP封装XML和JSON格式数据接口操作示例
2019/03/06 PHP
JQuery 常用操作代码
2010/03/14 Javascript
面向对象继承实例(a如何继承b问题)(自写)
2013/07/01 Javascript
jQuery下的动画处理总结
2013/10/10 Javascript
详解AngularJS中的依赖注入机制
2015/06/17 Javascript
AngularJS入门心得之directive和controller通信过程
2016/01/25 Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
2016/01/27 Javascript
Bootstrap轮播图的使用和理解4
2016/12/14 Javascript
JavaScript中三种常见的排序方法
2017/02/24 Javascript
微信小程序实现简单跑马灯效果
2020/05/26 Javascript
详解vue几种主动刷新的方法总结
2019/02/19 Javascript
[01:02:30]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第三场 8.22
2019/09/05 DOTA
python解析xml文件操作实例
2014/10/05 Python
Python获取DLL和EXE文件版本号的方法
2015/03/10 Python
详解Python中DOM方法的动态性
2015/04/11 Python
Python中pygame安装方法图文详解
2015/11/11 Python
使用Python读写及压缩和解压缩文件的示例
2016/07/08 Python
Python自定义类的数组排序实现代码
2016/08/28 Python
详解python基础之while循环及if判断
2017/08/24 Python
Python多线程编程之多线程加锁操作示例
2018/09/06 Python
Pycharm无法显示动态图片的解决方法
2018/10/28 Python
python3实现名片管理系统
2020/11/29 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
python base64库给用户名或密码加密的流程
2020/01/02 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
2020/02/25 Python
python集合能干吗
2020/07/19 Python
Django集成MongoDB实现过程解析
2020/12/01 Python
Java TransactionAPI (JTA) 主要包含几部分
2012/12/07 面试题
英文简历中的自我评价
2013/10/06 职场文书
高二化学教学反思
2014/01/30 职场文书
物流专业自荐信
2014/05/23 职场文书
古诗文之爱国名句(77句)
2019/09/24 职场文书
如何自己动手写SQL执行引擎
2021/06/02 MySQL
java基础——多线程
2021/07/03 Java/Android
Win11任务栏太宽了怎么办?一招解决Win11任务栏太宽问题
2021/11/21 数码科技