PHP常用函数之文件系统处理
检测
检查文件或目录是否存在
file_exists ()
检查给定文件名是否为一个存在的文件(存在、文件)
is_file ( string $filename )
检查给定目录名是否为一个存在的目录(存在、目录)
is_dir ( string $filename )
判断给定的文件名或目录名是否存在且可读(存在、文件或目录、可读)
is_readable ( string $filename )
判断给定的文件名或目录名是否存在且可写(存在、文件或目录、可写)
is_writable ( string $filename )
路径解析
解析文件名
basename ( string $path [, string $suffix ] ) //包含有指向一个文件的全路径的字符串
解析目录名
dirname ( string $path ) //包含有指向一个文件的全路径的字符串
解析全路径
pathinfo ( string $path [, int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME ] )
目录操作
新建目录
mkdir (); //创建目录,第三个参数表示是否递归创建
删除目录
rmdir (); //只能删除空目录,非空目录必须使用递归删除function removeDirOrFile($path){if(is_file($path)){return unlink($path);}if(is_dir($path)){$dir_handle = opendir($path);while(false !== ($file = readdir($dir_handle))) {if($file === '.' || $file === '..') continue;$subPath = $path.DIRECTORY_SEPARATOR.$file;$fnname = __FUNCTION__;$fnname($subPath);}closedir($dir_handle);return rmdir($path);}return FALSE; }
移动/重命名目录
rename ( string $oldname , string $newname [, resource $context ] );
获取目录内容
opendir(); readdir(); closedir(); rewind();function readDirsTree($path,$deep=0){if(is_file($path)){exit(basename($path));}if(is_dir($path)){$dir_handle = opendir($path);while(false !== ($file = readdir($dir_handle))) {if($file === '.' || $file === '..') continue;echo str_repeat(' ',$deep*2).iconv('GB2312','UTF-8',$file).'<br/>';if(is_dir($path.DIRECTORY_SEPARATOR.$file)){$fnname = __FUNCTION__;$fnname($path.DIRECTORY_SEPARATOR.$file, $deep+1);}}closedir($dir_handle);}}
复制目录
function copyDir($dirFrom, $dirTo){if(is_dir($dirFrom)){if(!file_exists($dirTo)){mkdir($dirTo,0777,TRUE);}$dir_handle = opendir($dirFrom);while(false !== ($file = readdir($dir_handle))) {if($file === '.' || $file === '..') continue;$fromPath = $dirFrom.DIRECTORY_SEPARATOR.$file;$toPath = $dirTo.DIRECTORY_SEPARATOR.$file;if(is_file($fromPath)){copy($fromPath, $toPath);}if(is_dir($fromPath)){$fnname = __FUNCTION__;$fnname($fromPath, $toPath);}}closedir($dir_handle);return TRUE;}else{return FALSE;} }
文件操作
获取文件大小
filesize ( string $filename );
删除文件
unlink ( string $filename);
剪切/重命名文件
rename ( string $oldname , string $newname );
拷贝文件
copy ( string $source , string $dest );
写文件
file_put_contents ( string $filename , mixed $data [, int $flags = 0 ] );
一般写文件就直接使用这个函数,里面其实也是依次调用fopen(),fwrite()以及 fclose() 功能。
读文件
file_get_contents ( string $filename );
此函数只适合读一些小文件(文件大小很小的),如果读大文件,必须使用下面方法,否则内存很容易溢出
fopen ( string $filename , string $mode );
fread ( resource $handle , int $length ); //按字节数读取
fgets ( resource $handle [, int $length ] ); //默认长度为1kb,按行读取
fgetc ( resource $handle ); //按1个字节1个字节读取
fclose ( resource $handle );获取文件修改时间
filemtime ( string $filename ); //返回时间戳
编码问题
在windows下,获取含有中文的目录名或文件名时,由于中文是GBK编码,而项目是utf-8编码,所以必须转码iconv('GBK','utf-8',$filename);
当输入的路径含有中文,由于项目是utf-8,而系统文件名或目录名都是GBK编码,所以必须转为iconv('utf-8','GBK',$path);
PHP常用函数之文件系统处理相关推荐
- Fatfs文件系统常用函数
Fatfs文件系统常用函数 本文将介绍Fatfs文件系统的常用函数,学过C语言文件函数的小伙伴们就可以跳过了,因为两者之间基本没有什么区别: 返回值枚举: 下文提到的大多数函数都会返回FRESULT枚 ...
- [转]SQLServer和Oracle,存储过程区别,常用函数对比
本文转自:http://www.cnblogs.com/neru/archive/2011/08/18/2144049.html 以前一直用sqlserver,只有很少的一点oracle的经验,现在要 ...
- 【推荐】有趣儿的PHP文件操作常用函数总结
有趣儿的PHP文件操作常用函数总结 以下是个人总结的PHP文件操作函数.当然,这只是部分,还有很多,我没有列出来. 一 .解析路径: 1 获得文件名: basename(); 给出一个包含有指向一个文 ...
- 最新php常用函数200个,180多个PHP常用函数总结
我们知道任何有效的 php 代码都有可能出现在函数内部,甚至包括其它函数和类定义.本文我们主要和大家分享180多个PHP常用函数总结,希望能帮助大家更高效的学习PHP. 数学函数 1.abs(): 求 ...
- Oracle 常用函数大全
Oracle 11g 常用函数(Functions)详解 目录 ABS. 3 ACOS. 3 ADD_MONTHS. 4 ASCII 4 ASCIISTR. 5 ASIN.. 5 ATAN.. 5 A ...
- oracle11g 常用函数(Functions)详解
Oracle11g常用函数(Functions)详解 目录 ABS. 3 ACOS. 3 ADD_MONTHS. 4 ASCII 4 ASCIISTR. 5 ASIN.. 5 ATAN.. 5 ATA ...
- PHP常用函数总结(180多个)
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到网站. PHP常用函数总结 数学函数 1.abs(): 求绝对值 $abs = abs(-4.2); //4 ...
- php内置常用函数是哪些,PHP常用函数有哪些
PHP常用函数有哪些 导语:PHP主要通过函数实现一些功能,那PHP常用函数有哪些呢?下面就由小编为大家介绍一下,欢迎大家阅读! 数学函数 1.abs(): 求绝对值 $abs = abs(-4.2) ...
- Lua基本语法-书写规范以及自带常用函数
Lua基本语法-书写规范和常用函数 本文提供全流程,中文翻译. Chinar坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 String O ...
最新文章
- 业余时间用哪里,哪里就有发展的可能
- HDU3949 XOR (线性基、查找第k小值)
- 下巴长痘痘是什么原因?要怎么解决?(实用教程)
- 1067: 有问题的里程表
- WIKIOI 1519 过路费
- 【2018icpc宁夏邀请赛现场赛】【Gym - 102222H】Fight Against Monsters(贪心排序)
- java实现报表_修改带 JAVA 自定义类的报表还要重启应用,咋解决?
- 行为模式之备忘录模式
- 深度学习——简化的神经网络模型和概念补充
- char强制类型转换为int_为强制类型转换正名
- 从git仓库获取源码_微软开源Scalar,提升操作巨型Git仓库的速度
- y的花式写法_26字母的花式写法可复制 也叫圆体字写法如下一基本规则
- SYSAUX表空间占用过大情况下的处理(AWR信息过多)
- 苹果手机屏幕尺寸大全
- 2019 年第 33 周 DApp 影响力排行榜 | TokenInsight
- 人工智能各学派简介:符号主义,连接主义,行为主义
- 05-SA8155 QNX通过QUB配置GPIO/INT/SPI/I2C/SPI等
- 【操作系统】文件管理(三)—— 文件的目录结构
- (2021年)IT技术分享社区个人文章汇总(编程技术篇)
- 实体服务器搭建vps系统,vps系统和云服务器搭建