您的位置:首页 > 其它

文件操作函数

2016-03-16 00:05 106 查看
1、文件测试函数

filetype() //文件or目录
is_dir() //判断是否是目录
is_file() //判断是否是文件
file_exsits() //文件或目录是否存在
filesize() //文件或目录大小(文件夹会本身占用4k)

2、文件操作

新建文件:

fopen($filename,"w"); 

//以"写"的方式打开一个不存在的文件,就会新建该文件
文件删除:

unlink();
文件复制:

copy($filename,"aaa/bb.txt");
尽量使用/和相对路径,因为Linux只认/,也没有磁盘分区,而Windows/和\都认
重命名文件:

rename($filename,"bb.txt");
文件移动(无专门移动函数,需先复制再删除原文件):
copy($filename,"aaa/bb.txt);
unlink($filename);
打开文件:
fopen($filename,"打开模式"); //返回一个资源;
打开模式:
r:只读方式打开,将文件指针指向文件头;
r+:读写方式打开,将文件指针指向文件头;
写:先写后读会覆盖内容(原:123456+abc=abc456),先读(指针已到最后)后写内容会接上以前的内容
读:r+模式写完后指针指针最后,此时用fread()读不到任何内容,只有通过移动指针rewind($fs)将指针移动到开头,才能读取全部内容
w:写入方式打开,将文件指针指向文件头并将文件大小截为零(清空原有内容),如果文件不存在则尝试创建之;

w+:读写方式打开,将文件指针指向文件头并将文件大小截为零(清空原有内容),如果文件不存在则创建文件;

a:写入方式(不能读)打开,将文件指针指向文件结尾(试验结果:ftell()返回为0),如果文
4000
件不存在则创建文件;
无法通过rewind()把内容写到前面,即只能在最后添加内容而不能修改任何内容

a+: 读写方式打开,将文件指针指向文件结尾(试验结果:ftell()返回为0)(直接读:不需要rewind()就可以读取全部内容)(写完再读:读之前需要用rewind()重置指针位置),如果文件不存在则创建文件;
无法通过rewind()把内容写到前面,即只能在最后添加内容而不能修改任何内容
关闭文件(关闭资源):

fclose($filename);
读取文件内容:

fread($fs,"读取长度"); //可配合filesize()读取全部内容
配合while($str=fread($fs,3)){}循环实现一段一段地读取,当返回的字符串为空时,表示已经读完,退出循环;缺点是碰到0或空字符串可能会提前退出循环;

或者使用feof($fs):判断指针是否已经到文件末尾,是则返回true

file(); //不需要资源
返回数组:一行字符为一个元素

readfile(); //不需要资源
直接输出内容,不能增删改,可输出图片
file_get_contents(); //不需要资源
可输出图片,nl2br()把换行符转换成<br/>
写入文件

fwrite($fs,3); //$fs是fopen返回的资源,读取3个字节,返回字符串,可用filesize($filename)代替,读取文件全部内容

file_put_contents(); //不需要资源
移动文件指针:

ftell($fs); //告诉你当前位置

fseek($fs,4,[,int 
$whence
 = SEEK_SET]); 

//到指定位置:4+whence
SEEK_SET=0;SEEK_SUR=1;SEEK_END=2

rewind(); //指针返回到文件开头

3、目录操作

创建目录
mkdir(); //成功返回true,否则false
删除目录
rmdir(); //目录必须为空,成功返回true,否则false
解析目录路径

basename(); //取路径最后的文件名

dirname(); //取路径最后的文件夹名

pathinfo();

parse_url(); //解析URL

parse_str();

readpath("./");
相对地址转成绝对地址//.文件夹(当前目录的绝对地址),..文件夹(上一级目录的绝对地址)

DIRECTORY_SEPARATOR;
//系统目录分隔符,windows下是\,Linux下是/

PATH_SEPARATOR;
路径分隔符:(分号)

__FILE__;
//输出该常量所在文件的绝对路径
遍历目录

opendir();
遍历一层目录,返回的是资源,失败返回false

想要遍历几层目录需要用:递归listDir(),(注意要过滤.和..两个文件夹,不然会死循环)
利用递归思想可以检测目录的大小:totalDir(),要返回的成员变量$total必须是静态变量
readdir();
读取目录;利用while循环可以读取目录下所有文件,循环条件:(返回值!=false)
closedir();
opendir()打开流之后关闭流
scandir();

统计磁盘空间大小

disk_free_space();

disk_total_space();

4、文件上传

5、多文件上传

6、文件下载

7、文件上传和下载系统
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: