PHP学习笔记--文件目录操作(文件上传实例)
php的文件高级操作和文件上传实例我放在文章的最后部分。--以后我还会给大家写一个PHP类似于网盘操作的例子
注意:阅读此文章,必须的备一个 《PHP中文手册》或者其它可以查询PHP函数的手册 因为文章有大量的示例,但是为了节约篇幅和时间,所以请大家自行查阅PHP手册,以明白函数的具体作用
1、php打开文件和关闭文件
用到的函数 fopen() 、fclose() 注:打开的文件一定要关闭! 具体函数参数请查阅php手册
实例:
View Code
fopen()函数在php5中也支持url格式:
View Code
2、PHP的文件读写
读操作-
用到的函数 readfile()、file()、file_get_contents()、fgets()、fgetss()、fgetc()
示例中的文件位置请根据自己的文件进行更改,不要纠结文件位置和文件名什么的。重点在学习
文件测试
使用 readfile()函数读取文件内容: | |
使用 file()函数读取文件内容: | "; } ?> |
使用 file_get_contents()函数读取文件内容: |
使用fgets()函数: | |
使用fgetss()函数: | |
使用fgetc()函数: |
写操作-
用到的函数 fwrite()、 file_put_contents()
"; echo fread($fp,filesize($filename)); //输出其余的文件内容 */ $filepath = "05.txt"; $str = "此情可待成追忆 只是当时已惘然View Code
"; echo "用 fwrite() 函数写入文件: "; $fopen = fopen($filepath,"wb") or die("文件不存在"); fwrite($fopen,$str); fclose($fopen); readfile($filepath); echo "用 file_put_contents() 函数写入文件: "; file_put_contents($filepath,$str); readfile($filepath);?>
3、php文件本身的操作
本示例只是列举函数,请不要直接运行。运行前请根据自己的需求更改
View Code
===================================================================
一、php目录操作
和文件操作类似,也要打开关闭目录 用opendir()、和closedir()函数进行打开和关闭目录
View Code
二、php目录的游览
核心函数 scandir()
"; } } else { echo "目录路径错误!"; }?>View Code
三、php目录的其他操作,获取磁盘目录大小,新建删除目录等等
本示例只是列举函数,请不要直接运行。运行前请根据自己的需求更改
"; chdir("../"); //更改为返回上一级 echo getcwd(); //重新获取当前目录 /*用disk_free_space()函数 返回目录中的可用空间*/ echo disk_free_space("D:/")/pow(1024,3); //这里换算成了G、默认是以字节显示的 /*用disk_total_space()函数 返回目录中的可用空间*/ echo disk_total_space("D:/")/pow(1024,3); //这里换算成了G、默认是以字节显示的 /*关于PHP5以前的老游览目录的方法 我就不列举了,这里仅仅给出函数名: readdir()、rewinddir()*/?>View Code
====================================================================
文件的高级运用
文件指针:
"; //输出总字节数 $fopen = fopen($filename,"rb"); //打开文件 , 以只读的二进制文件格式的去 echo "初始指针位置是: ".ftell($fopen)."View Code
"; //输出指针位置 fseek($fopen,3); //移动指针 echo "使用 fseek() 函数后指针位置: ".ftell($fopen)."
"; //输出移动后的指针位置 echo "输出当前指针后面的内容: ".fgets($fopen)."
"; //输出从当前指针到行尾的内容 if(feof($fopen)) //判断指针是否指向文件末尾 { echo "当前指针指向文件末尾: ".ftell($fopen)."
"; //如果指向了文件尾,则输出指针位置 } //使用rewind() 函数返回文档流的开头 --一旦流读到末尾再度就读不到数据了, //所以这里要重新指向一个文件的指针 rewind($fopen); //查看使用 rewind() 函数后指针的位置 echo "使用 rewind() 函数后指针的位置: ".ftell($fopen)."
"; echo "输出前 6 个字节的内容: ".fgets($fopen,6); //输出前6个字节的内容 fclose($fopen); //关闭文件 } else { echo "文件不存在!"; }?>
文件锁定:
View Code
====================================================================
文件的上传
获取上传文件的信息:
无标题文档
"; } } ?> View Code
真正的文件上传(从临时到指定位置):
0) //判断文件大小 { //上传文件 move_uploaded_file($fileinfo['tmp_name'],"upfile/".$fileinfo['name']); echo "文件上传成功!"; } else { echo "文件太大或者未知"; } } ?> View Code无标题文档
多文件上传:
"; } } } ?> View Code无标题文档