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_xmlhttp 乱码问题解决方法
Aug 07 PHP
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
Nov 07 PHP
探讨各种PHP字符串函数的总结分析
Jun 05 PHP
PHP循环函数使用介绍之PHP基础入门教程
Sep 21 PHP
PHP生成条形图的方法
Dec 10 PHP
php序列化函数serialize() 和 unserialize() 与原生函数对比
May 08 PHP
PHP准确取得服务器IP地址的方法
Jun 02 PHP
Symfony2学习笔记之控制器用法详解
Mar 17 PHP
php+jQuery+Ajax简单实现页面异步刷新
Aug 08 PHP
laravel自定义分页效果
Jul 23 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
May 11 PHP
PHP CURL实现模拟登陆并上传文件操作示例
Jan 02 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
php获取文件大小的方法
2014/02/26 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
2014/06/23 PHP
PHP判断数据库中的记录是否存在的方法
2014/11/14 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
php libevent 功能与使用方法详解
2020/03/04 PHP
JQuery的html(data)方法与<script>脚本块的解决方法
2010/03/09 Javascript
JAVASCRIPT实现的WEB页面跳转以及页面间传值方法
2010/05/13 Javascript
jQuery powerFloat万能浮动层下拉层插件使用介绍
2010/12/27 Javascript
Node.js中HTTP模块与事件模块详解
2014/11/14 Javascript
JQuery使用index方法获取Jquery对象数组下标的方法
2015/05/18 Javascript
jQuery实现的自适应焦点图效果完整实例
2016/08/24 Javascript
JS与HTML结合实现流程进度展示条思路详解
2017/09/03 Javascript
Node.JS使用Sequelize操作MySQL的示例代码
2017/10/09 Javascript
javaScript动态添加Li元素的实例
2018/02/24 Javascript
linux 下以二进制的方式安装 nodejs
2020/02/12 NodeJs
Vue常用的全选/反选的示例代码
2020/02/19 Javascript
使用Python脚本和ADB命令实现卸载App
2017/02/10 Python
Python实现七彩蟒蛇绘制实例代码
2018/01/16 Python
python基础教程项目四之新闻聚合
2018/04/02 Python
python sys,os,time模块的使用(包括时间格式的各种转换)
2018/04/27 Python
Python 调用PIL库失败的解决方法
2019/01/08 Python
在numpy矩阵中令小于0的元素改为0的实例
2019/01/26 Python
基于Python实现船舶的MMSI的获取(推荐)
2019/10/21 Python
Python 处理日期时间的Arrow库使用
2020/08/18 Python
用纯css3实现的图片放大镜特效效果非常不错
2014/09/02 HTML / CSS
俄罗斯便宜的在线服装商店:GroupPrice
2020/04/10 全球购物
Big Green Smile法国:领先的英国有机和天然产品在线商店
2021/01/02 全球购物
下面这个程序执行后会有什么错误或者效果
2014/11/03 面试题
行政经理岗位职责
2013/11/09 职场文书
测控技术与仪器个人求职信范文
2013/12/30 职场文书
办公自动化专业大学生职业规划书
2014/03/06 职场文书
学校安全责任书
2014/04/14 职场文书
农贸批发市场管理制度
2015/08/07 职场文书
2019个人半年工作总结
2019/06/21 职场文书
mysql 8.0.27 绿色解压版安装教程及配置方法
2022/04/20 MySQL