PHP 面试时常考的文件操作函数
前两天面试的时候,笔试要求写一些文件操作类函数,什么遍历目录获取文件扩展名之类的,回来后大致总结了一下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 面试时常考的文件操作函数相关推荐
- 使用文件操作函数实现:文件的复制功能。
2019独角兽企业重金招聘Python工程师标准>>> //使用文件操作函数实现:文件的复制功能. #include <stdio.h> #include <std ...
- php文件有哪几种,PHP常用的文件操作函数有哪些
PHP常用的文件操作函数有哪些 本文主要总结的PHP文件操作函数.当然,这只是部分,还有很多,我没有列出来.欢饮阅读参考! 一 .解析路径: 1 获得文件名: basename(); 给出一个包含有指 ...
- 【C 语言】文件操作 ( C 语言中的文件操作函数 | 磁盘与内存缓冲区 | 缓冲区工作机制 )
文章目录 一.C 语言中的文件操作函数 二.磁盘与内存缓冲区 三.缓冲区工作机制 一.C 语言中的文件操作函数 读取 文本文件 可以使用 getc , fgets , fscanf 函数 , 向 文本 ...
- python中对文件、文件夹(文件操作函数)的操作
python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目 ...
- C语言文件操作函数大全(看到总结的真的很好,就转载贡献给大家了)
C语言文件操作函数大全 clearerr(清除文件流的错误旗标) 相关函数 feof 表头文件 #include<stdio.h> 定义函数 void clearerr(FILE * st ...
- matlab常用函数——文件操作函数
十一.基本文件操作函数 1)文件创建函数 filemaker :把文件名与文件中函数名分开 . filesep :文件目录分隔. fileparts :把目标文件名拆分成字符串形式输出 . tempd ...
- C语言程序设计 文件操作函数
文件操作函数 C语言 (FILE fputc fgetc fputs fgets fscanf fprintf) 在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别 ...
- c语言全文件操作函数,C语言文件操作函数大全
C语言 文件操作函数大全 C语言文件操作函数 2007-10-17 19:21 13.1C语言文件 1,两种文件存取方式(输入,输出方式) 顺序存取 直接存取 2,数据的两种存放形式 文本文件 二进制 ...
- PHP常用的文件操作函数集锦
以下是个人总结的PHP文件操作函数.当然,这只是部分,还有很多,我没有列出来. 一 .解析路径: 1 获得文件名: basename(); 给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的 ...
最新文章
- html table增加删除编辑,一个可以增加和删除行的table并可编辑表格中内容
- linux配置nginx虚拟目录
- poj3253 优先队列
- Brave devil
- 「题解」:[组合数学]:Perm 排列计数
- 32张感恩海报!武汉市文化和旅游局这波操作太可以了
- python 生成器对象_Python 生成器, 迭代器, 可迭代对象的区别
- Pandas系列(七)Pandas数据排序
- 定时任务cron表达式
- 自动驾驶横向控制 LQR 算法推导及仿真学习笔记
- 11.2.1 绝对值函数
- 客户端软件GUI开发技术漫谈:原生与跨平台解决方案分析
- Linux删除重复行
- EF 配置Oracle数据库 EF ORA-01918: 用户 'dbo' 不存在
- 装饰者模式---装饰者模式和桥接模式的区别
- 5000立方米球罐设计
- Linux环境变量profile
- 运放构成的电压跟随器
- 一套强大的vim配置文件+详细注释
- 2018-09-06 Java实现英汉词典API初版发布在Maven