php文件系统处理方法小结


Posted in PHP onMay 23, 2016

本文总结分析了php文件系统处理方法。分享给大家供大家参考,具体如下:

文件类型

以Linux为模型的, 在Windows只能获取file, dir或unknow 三种类型
在Linux/Unix下, block, char, dir, fifo, file, link, unknown7种型

block :块设置文件,磁盘分区,软驱, cd-rom等
char: 字符设备,I/O (输入输出中)以字符为单位的设备, 例如键盘,打印机等
dir:  目录也是文件的一种/目录文件
fifo: 信息管道,从一个程序传输到另一个进程
file: 普通的文件类型如文本文件,可执行文件
link: 链接文件,相当于windows下的快捷方式
unknown  :未知类型

1.文件属性处理函数

filetype("目录或文件名") 获取类型
is_dir -- 判断给定文件名是否是一个目录
is_file -- 判断给定文件名是否为一个正常的文件
is_link -- 判断给定文件名是否为一个符号连接
is_executable(); -- 判断给定文件名是否可执行
file_exists();--文件是否存在
filesize();--返回文件大小
is_readable();--文件是否可读
is_writeable();--文件是否可写
filectime();--文件创建时间
filemtime();--文件修改时间
fileactime();--文件最后访问时间
stat();--文件状态,返回关于给定文件的信息的数组

bool ftruncate ( resource handle, int size );

接受文件指针 handle 作为参数,并将文件大小截取为 size。如果成功则返回 TRUE,失败则返回 FALSE。

bool rename ( string oldname, string newname [, resource context] );

2.目录

目录属性

* basename(url[,扩展名]);   //返回文件名
* dirname(url);   //目录名
* pathinfo(url);  //路径信息

例子:

$path="/var/www/html/page.php";
echo basename($path);// 返回page.php
echo basename($path,".php"); //page
echo dirname($paht);// /var/www/html
$arr=pathinfo($paht);
$arr["dirname"] // /var/www/html
$arr["basename"]// page.php
$arr["extension"]// .php

遍历目录

opendir(url);
readdir(url);//返回当前目录指针只为的一个文件名,并将目录指针向后移动一位
closedir(url);
rewinddir(url);//把目录指针重置到开始处

统计目录大小

统计目录的大小只能建立递归函数把目录的文件都加起来;

统计磁盘大小可以使用 disk_free_space(url);和 disk_total_space(url);

建立和删除目录

mkdir(url);//建立目录
rmdir(url);//删除空目录
unlink(url);//删除文件

删除非空目录只能自己建立递归函数;

复制目录

copy($scrfile,$to);//复制文件

得自定义递归函数实现目录复制功能

3.文件的基本操作

fopen(url);
fclose(url);

写入文件

int fwrite(resoure handle,strint string[,int length]);

返回写入的字符数或是FALSE

fputs()是fwrite()的别名

int file_put_contents ( string filename, string data [, int flags [, resource context]] );

和依次调用 fopen(),fwrite() 以及 fclose() 功能一样。

读取文件

string fread ( resource handle, int length );

从文件指针 handle 读取最多 length 个字节。 该函数在读取完 length 个字节数,或到达 EOF 的时候

string file_get_contents ( string filename [, bool use_include_path [, resource context [, int offset [, int maxlen]]]] );
array file ( string filename [, int use_include_path [, resource context]] );

数组中的每个单元都是文件中相应的一行,包括换行符在内。

string fgets ( resource handle [, int length] );

string fgetc ( resource handle );

int readfile ( string filename [, bool use_include_path [, resource context]] );

读入一个文件并写入到输出缓冲。

如果访问远程文件,必须在php的配置文件中激活"allow_url_fopen"选项,才能使用fopen()函数打开远程文件

使用FTP协议连接远程文件的时,只可以用“只读”或“只写”模式打开文件。

移动文件指针

int ftell ( resource handle );

返回由 handle 指定的文件指针的位置,也就是文件流中的偏移量。

int fseek ( resource handle, int offset [, int whence] );

在与 handle 关联的文件中设定文件指针位置。新位置,从文件头开始以字节数度量,是以 whence 指定的位置加上 offset。whence de 值定义为:

SEEK_SET - 设定位置等于 offset 字节。
SEEK_CUR - 设定位置为当前位置加上 offset。
SEEK_END - 设定位置为文件尾加上 offset。(要移动到文件尾之前的位置,需要给 offset 传递一个负值。)

bool rewind ( resource handle );

将 handle 的文件位置指针设为文件流的开头

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

PHP 相关文章推荐
php 中英文语言转换类代码
Aug 11 PHP
php文件打包 下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
Jun 13 PHP
PHP递归算法的详细示例分析
Feb 19 PHP
php计算程序运行时间的简单例子分享
May 10 PHP
教你如何用php实现LOL数据远程获取
Jun 10 PHP
php实现字符串首字母转换成大写的方法
Mar 17 PHP
PHP中使用curl入门教程
Jul 02 PHP
php实现的中文分词类完整实例
Feb 06 PHP
详谈phpAdmin修改密码后拒绝访问的问题
Apr 03 PHP
详解PHP swoole process的使用方法
Aug 26 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 PHP
PHP实现的简单组词算法示例
Apr 10 PHP
php字符串的替换,分割和连接方法
May 23 #PHP
Smarty实现页面静态化(生成HTML)的方法
May 23 #PHP
php 数组随机取值的简单实例
May 23 #PHP
php使用ffmpeg向视频中添加文字字幕的实现方法
May 23 #PHP
Smarty模板变量调节器用法分析
May 23 #PHP
基于PHP后台的Android新闻浏览客户端
May 23 #PHP
Smarty保留变量用法分析
May 23 #PHP
You might like
linux环境apache多端口配置虚拟主机的方法深入介绍
2013/06/09 PHP
php微信公众号开发之音乐信息
2018/10/20 PHP
使用Laravel中的查询构造器实现增删改查功能
2019/09/03 PHP
laravel 出现command not found问题的解决方案
2019/10/23 PHP
Avengerls vs KG BO3 第三场2.18
2021/03/10 DOTA
破除网页鼠标右键被禁用的绝招大全
2006/12/27 Javascript
使用jquery hover事件实现表格的隔行换色功能示例
2013/09/03 Javascript
非html5实现js版弹球游戏示例代码
2013/09/22 Javascript
js中的eventType事件及其浏览器支持性介绍
2013/11/29 Javascript
jQuery实现div浮动层跟随页面滚动效果
2014/02/11 Javascript
Javascript实现颜色rgb与16进制转换的方法
2015/04/18 Javascript
javascript常用的方法分享
2015/07/01 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
2015/11/13 Javascript
基于bootstrap插件实现autocomplete自动完成表单
2016/05/07 Javascript
Vue.js表单控件实践
2016/10/27 Javascript
微信小程序template模板实例详解
2017/10/27 Javascript
vue select组件的使用与禁用实现代码
2018/04/10 Javascript
js指定日期增加指定月份的实现方法
2018/12/19 Javascript
Vuex,iView UI面包屑导航使用扩展详解
2019/11/04 Javascript
利用React高阶组件实现一个面包屑导航的示例
2020/08/23 Javascript
Vue实现图书管理小案例
2020/12/03 Vue.js
[15:20]DOTA2亚洲邀请赛总决赛开幕式表演:羽泉献唱
2017/04/05 DOTA
python处理json数据中的中文
2014/03/06 Python
python+opencv实现动态物体识别
2018/01/09 Python
Python sklearn库实现PCA教程(以鸢尾花分类为例)
2020/02/24 Python
Python类和实例的属性机制原理详解
2020/03/21 Python
一款纯css3实现简单的checkbox复选框和radio单选框
2014/11/05 HTML / CSS
详解HTML5 Canvas标签及基本使用
2020/01/10 HTML / CSS
优质的学校老师推荐信
2013/10/28 职场文书
主题教育活动总结
2014/05/05 职场文书
俞敏洪北大演讲稿
2014/05/22 职场文书
大学生实习推荐信
2015/03/27 职场文书
vue+elementui 实现新增和修改共用一个弹框的完整代码
2021/06/08 Vue.js
Shell脚本一键安装Nginx服务自定义Nginx版本
2022/03/20 Servers
Selenium浏览器自动化如何上传文件
2022/04/06 Python
Python编写车票订购系统 Python实现快递收费系统
2022/08/14 Python