PHP目录操作实例总结

yipeiwu_com6年前PHP代码库

本文实例总结了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
$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
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文件操作总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php面向对象程序设计入门教程》、《PHP网络编程技巧总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

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

相关文章

让PHP COOKIE立即生效,不用刷新就可以使用

复制代码 代码如下: //PHP COOKIE设置函数立即生效。 function cookie($var, $value='', $time=0, $path='', $domain=...

php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]

登录原理还是蛮复杂的,像我这样以为curl获取页面再post上去的想法真是太单纯了。 整理下遇到的价格处理字符串的函数: 复制代码 代码如下: <?php $encryption...

编译php 5.2.14+fpm+memcached(具体操作详解)

#author:zhxia 给php打上php-fpm 补丁sudo tar jxvf php-5.2.14.tar.bz2sudo patch -d php-5.2.14 -p1 &l...

php GeoIP的使用教程

GeoIP介绍: 什么是GepIP ? 所谓GeoIP,就是通过来访者的IP, 定位他的经纬度,国家/地区,省市,甚至街道等位置信息。这里面的技术不算难题,关键在于有个精准 的数据库。有...

利用PHP扩展Xhprof分析项目性能实践教程

利用PHP扩展Xhprof分析项目性能实践教程

一、背景 项目即将上线,想通过一些工具来分析代码的稳定性和效率,想起在上个团队时使用过的xhprof扩展;因为换了新电脑,所以需要重新编译此扩展,现将安装与实际排查过程完整记录下来,方...