前两天面试的时候,笔试要求写一些文件操作类函数,什么遍历目录获取文件扩展名之类的,回来后大致总结了一下PHP中一些常见的文件操作函数分享一下。

1、使用递归删除目录及目录下所有文件的方法。

function delDir($dir){    @$dh=opendir($dir);         //打开目录流    while(!!$file=@readdir($dh)){        if($file!='.' && $file!='..'){            $fullpath=$dir.'/'.$file;            if(!is_dir($fullpath)){      //如果是文件直接删除                unlink($fullpath);            }else{                       //如果是目录 递归调用本身                delDir($fullpath);            }        }    }    @closedir($dh);        //关闭目录流    if(@rmdir($dir)){        //删除目录本身        return true;    }else{        return false;    }}

 2、写出一个能创建多级目录的PHP函数

function createdirlist($path,$mode){    if (is_dir($path)){        //判断目录存在否,存在不创建        echo "目录'" . $path . "'已经存在";        //已经存在则输入路径    }else{ //不存在则创建目录        $re=mkdir($path,$mode,true);        //第三个参数为true即可以创建多极目录        if ($re){            echo "目录创建成功";//目录创建成功        }else{            echo "目录创建失败";        }    }}$path="../a/x/cc/cd"; //要创建的目录$mode=0755; //创建目录的模式,即权限.createdirlist($path,$mode);//测试

3、写出一个函数统计某个目录下所有文件大小

function getDirSize($dirname){    $dirsize = 0;//初始化一个大小为0    $handle = opendir($dirname);//打开这个目录    //从目录句柄中循环读取条目,并按照系统中的顺序返回目录中下一个文件的文件名    while($fliename = readdir($handle)){//readdir函数用于从目录中读取条目        if($fliename != "." && $fliename != ".."){            $file = $dirname.'/'.$fliename;            //判断给定文件名是否是一个目录            if(is_dir($file)){                //如果是一个目录,则调用函数getDirSize()                $dirsize+=getDirSize($file);            }else{                //如果不是目录是一个文件,则取得其大小并且累加到变量$diesize                $dirsize+=filesize($file);//filesize获取文件大小            }        }    }    closedir($handle);//关闭目录句柄    return $dirsize;//返回累加的大小}$dirname = "E:/www";//指定要遍历的目录echo $dirname."目录中文件的总大小为:".getDirSize($dirname)."B";

 

4、写一个函数,能够遍历一个文件夹下的所有文件和子文件夹

方法一:function dir_recurse($dir) {    $i = 1;    if($handle = opendir($dir)) {//打开这个目录        while(false !== ($file = readdir($handle))) {//readdir函数用于从目录中读取条目            if($file != "." && $file != ".." ) {                if(is_dir($dir."/".$file) == true) {//判断是否是一个目录                    $fullpath = $dir."/".$file;                    dir_recurse($fullpath);                    echo "$fullpath\n"."<br>";                    $i++;                }else {                    $fullpath = $dir."/".$file;                    echo "$fullpath\n"."<br>";                    $i++;                }            }        }        closedir($handle);    }}$dir = "E:/KuGou";dir_recurse($dir);
方法二:function my_scandir($dir){    $files=array();    if(is_dir($dir))//判断是否是目录    {        if($handle=opendir($dir))//打开目录句柄        {            while(($file=readdir($handle))!==false)//从目录句柄中读取条目            {                if($file!= "." && $file!="..")                {                    if(is_dir($dir."/".$file))                    {                        $files[$file]=my_scandir($dir."/".$file);                    }                    else                    {                        $files[]=$dir."/".$file;                    }                }            }            closedir($handle);            return $files;        }    }}$dir = "E:/KuGou";echo "<pre>";print_r(my_scandir($dir));

5、使用五种以上方式获取一个文件的扩展名

要求:dir/upload.image.jpg,找出 .jpg 或者 jpg ,
必须使用PHP自带的处理函数进行处理,方法不能明显重复,可以封装成函数

第一种:function get_ext1($file_name){    return strrchr($file_name, '.');}第二种:function get_ext2($file_name){    return substr($file_name, strrpos($file_name, '.'));}第三种:function get_ext3($file_name){    $p=explode('.', $file_name);    return array_pop($p);}第四种:function get_ext4($file_name){    $p = pathinfo($file_name);    return $p['extension'];}第五种:function get_ext5($file_name){    return strrev(substr(strrev($file_name), 0, strpos(strrev($file_name), '.')));}第六种:function get_text6($file_name){    return end(explode('.',$file_name));}

一般面试常考的也就是这些了,欢迎补充。

转载于:https://www.cnblogs.com/luokakale/p/7242866.html

PHP 面试时常考的文件操作函数相关推荐

  1. 使用文件操作函数实现:文件的复制功能。

    2019独角兽企业重金招聘Python工程师标准>>> //使用文件操作函数实现:文件的复制功能. #include <stdio.h> #include <std ...

  2. php文件有哪几种,PHP常用的文件操作函数有哪些

    PHP常用的文件操作函数有哪些 本文主要总结的PHP文件操作函数.当然,这只是部分,还有很多,我没有列出来.欢饮阅读参考! 一 .解析路径: 1 获得文件名: basename(); 给出一个包含有指 ...

  3. 【C 语言】文件操作 ( C 语言中的文件操作函数 | 磁盘与内存缓冲区 | 缓冲区工作机制 )

    文章目录 一.C 语言中的文件操作函数 二.磁盘与内存缓冲区 三.缓冲区工作机制 一.C 语言中的文件操作函数 读取 文本文件 可以使用 getc , fgets , fscanf 函数 , 向 文本 ...

  4. python中对文件、文件夹(文件操作函数)的操作

    python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目 ...

  5. C语言文件操作函数大全(看到总结的真的很好,就转载贡献给大家了)

    C语言文件操作函数大全 clearerr(清除文件流的错误旗标) 相关函数 feof 表头文件 #include<stdio.h> 定义函数 void clearerr(FILE * st ...

  6. matlab常用函数——文件操作函数

    十一.基本文件操作函数 1)文件创建函数 filemaker :把文件名与文件中函数名分开 . filesep :文件目录分隔. fileparts :把目标文件名拆分成字符串形式输出 . tempd ...

  7. C语言程序设计 文件操作函数

    文件操作函数 C语言 (FILE fputc fgetc fputs fgets fscanf fprintf) 在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别 ...

  8. c语言全文件操作函数,C语言文件操作函数大全

    C语言 文件操作函数大全 C语言文件操作函数 2007-10-17 19:21 13.1C语言文件 1,两种文件存取方式(输入,输出方式) 顺序存取 直接存取 2,数据的两种存放形式 文本文件 二进制 ...

  9. PHP常用的文件操作函数集锦

    以下是个人总结的PHP文件操作函数.当然,这只是部分,还有很多,我没有列出来. 一 .解析路径: 1 获得文件名: basename(); 给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的 ...

最新文章

  1. html table增加删除编辑,一个可以增加和删除行的table并可编辑表格中内容
  2. linux配置nginx虚拟目录
  3. poj3253 优先队列
  4. Brave devil
  5. 「题解」:[组合数学]:Perm 排列计数
  6. 32张感恩海报!武汉市文化和旅游局这波操作太可以了
  7. python 生成器对象_Python 生成器, 迭代器, 可迭代对象的区别
  8. Pandas系列(七)Pandas数据排序
  9. 定时任务cron表达式
  10. 自动驾驶横向控制 LQR 算法推导及仿真学习笔记
  11. 11.2.1 绝对值函数
  12. 客户端软件GUI开发技术漫谈:原生与跨平台解决方案分析
  13. Linux删除重复行
  14. EF 配置Oracle数据库 EF ORA-01918: 用户 'dbo' 不存在
  15. 装饰者模式---装饰者模式和桥接模式的区别
  16. 5000立方米球罐设计
  17. Linux环境变量profile
  18. 运放构成的电压跟随器
  19. 一套强大的vim配置文件+详细注释
  20. 2018-09-06 Java实现英汉词典API初版发布在Maven

热门文章

  1. 还来一篇说下json_value 以及 json_query 的应用 (3)
  2. centos 使用rz sz指令
  3. [导入]Nhibernate学习 资料
  4. 点餐系统的设计(一)
  5. 小白必须要会的Github操作 确定不进来看看?
  6. 线程通信:生产者消费者问题
  7. 35岁的程序员如果不转行,从事哪些细分行业比较好?
  8. 上市公司回购股票是利好还是利空?
  9. “华为”和“荣耀”手机有什么区别?
  10. 吃虾到底要不要去虾线?