前言
我们在开发的时候,有时候需要涉及到图片、文件的上传下载等操作。比如注册账号的时候,有时候需要上传头像的图片,这时候就需要用到文件的处理,而文件的样式有很多种如txt,word,excel等。
文件的传输方式
在PHP语言甚至于其他语言中操作文件的形式,实质上是操作流的。PHP中共有两种流(字节流,二进制流)按照输出的方式不同还分成输入流和输出流。
文件的流都是以内存参照的, 如果数据是从内存保存磁盘的文件中,我们称为输出流,反过来,如果是从文件想内存流动,我们称为输入流。
文件的操作方式
在PHP中文件的操作方式分为两种
-
本地操作
-
远程操作
本地操作是在自己的电脑上对文件进行增删改查等操作。
远程操作是远程访问服务器,对服务器上的文件进行增删改查等操作。
从帮助文档中可以看到关于操作文件的函数:
这里只是列出函数里面的一些,更多的函数可以查看帮助文档。可以看到在帮助文档一共有81个函数,但是我们不用全部掌握,常用的就那几个。
对文件的操作
读取文件的相关信息
我们在操作文件时,有时候需要知道文件的相关信息,比如文件的大小,文件的类型,文件的创建时间,修改时间,访问时间等等信息,这里就会使用到读取文件相关信息的技术,在PHP中分为两种形式进行文件信息的获取。
读取文件相关信息的第一种方式
<?php //写一个变量记录文件的路径 $file_path = "D:/config.txt"; if(file_exists($file_path)){ //文件存在 if($fp = fopen($file_path,'r')){ //$type是一个存放文件信息的数组 $type = fstat($fp); echo '<br>文件的字节是:' . $type['size']; echo '<br>文件创建时间是:' . date('Y-m-d H:i:s',$type['ctime']); echo '<br>文件访问时间是:' . date('Y-m-d H:i:s',$type['atime']); echo '<br>文件修改时间是:' .date('Y-m-d H:i:s',$type['mtime']); //关闭资源 <strong>)本文来(源gaodai#ma#com搞@@代~&码*网2</strong><pre>搞代gaodaima码
fclose($fp); }else{ echo '文件打开失败'; } }else{ echo '文件不存在'; } ……结果……. 文件的字节是:22 文件创建时间是:2016-10-12 20:34:56 文件访问时间是:2016-10-12 20:34:56 文件修改时间是:2016-10-12 20:35:08
1. 我们先定义一个路径是我们访问的文件,这个路径可以是相对路径,也可以是绝对路径。
2. 通过file_exists($path)函数判断文件是否存在,存在返回true,不存在返回false.
3. 通过fopen($path,访问形式),该函数打开一个文件,返回一个文件指针,指向第一行。第一个参数是文件的路径,第二个参数是文件的访问形式,“r”表示对文件进行读。
4. fstat(文件指针)通过已打开的文件指针取得文件信息,返回一个数组,里面有一些关联数组是我们想要的值。
5. 使用完资源,记得关闭,不然有时候会出现出人意料的错误。
读取文件信息的第二种方式
<?php $file_path = 'D:/config.txt'; echo '<br>文件的类型是:' . filetype($file_path); echo '<br>文件的大小是:' . filesize($file_path); echo '<br>文件的创建时间是:' . date('Y-m-d H:i:s',filectime($file_path)); echo '<br>文件的访问时间是:' .date('Y-m-d H:i:s',fileatime($file_path)); echo '<br>文件的修改时间是:' . date('Y-m-d H:i:s',filemtime($file_path)); .....结果..... 文件的类型是:file 文件的大小是:22 文件的创建时间是:2016-10-12 20:34:56 文件的访问时间是:2016-10-12 20:34:56 文件的修改时间是:2016-10-12 20:35:08