前言:
其实我觉得初步学习文件系统处理就是学习一个一个的函数,只需要记住这些函数,
那么你就初步掌握了文件管理,当然这只是基础,如果需要更深入,那么就只能上网查询更多的文献来深造了。
知识点1:认识文件类型
文件类型有七种,但是我们只记住两种就可以了:Dir[目录类型,目录也是文件的一种],File[普通文件类型]
filetype('文件路径');
作用:获取文件的类型
返回值:如果路径正确返回文件的类型,否则返回 'false';
知识点2:文件属性
file_exists('文件名');
作用:检查文件是否存在
返回值:文件存在返回 'true', 否则返回 'false';
filesize('文件名');
作用:获取文件的大小
返回值:返回文件的字节数,出错返回 'false';
flemtime('文件名');
作用:获取文件的修改的时间
返回值:返回的是时间戳
stat('文件名');
作用:获取文件大部分属性
返回值:返回文件属性的数组
cleanstatcache() 清除被php缓存的文件信息
知识点3:目录的操作
对目录路径的解析只需要记住一个函数:pathinfo();
pathinfo();
作用:分解一个目录成多个部分
返回值:返回一个关联数组,键值为 dirname、basename、extension
遍历目录需要用到的函数有三:opendir()、readdir()、closedir();
opendir('目录名') 返回目录的句柄[资源类型],如果目录不存在或者没有访问权限,则返回 'false';
readdir('目录句柄') 返回文件名,并将目录指针向后移动一位。当指针位于目录的结尾时,返回 'false';
closedir('目录句柄') 作用是关闭打开的目录;
rewinddir('目录句柄') 作用是重置目录指针;
新建、删除和复制目录
mkdir('目录名') 新建目录
rmdir('目录名') 删除空目录,如果目录下有文件,需要删除该目录下的所有文件,才能删除目录。
unlink('文件名') 删除文件。
copy($subsrcFile, $subtoFile) 复制文件,$subsrcFile源文件,$subtoFile目标文件
rename('旧文件名', '新的文件名'); 重命名文件或者目录
因此这边删除目录和复制目录都需要自己写一个递归函数才能删除,php没有给出特定的函数。
知识点4:文件的基本操作
其实只需要记住两个函数就够了,分别是:写入[file_put_contents($filename, $data)],读取[file_get_contents($filename)]。
如果需要严格控制文字字数,那么就需要用到以下示例了:
$fileName = 'data.txt' ;
$handle = fopen ( $fileName , 'w' ) or die ( '打开文件失败' ) ;
for ( $row = 0 ; $row < 10 ; $row ++ ) {
fwrite ( $handle , $row . 'my name is malikuan!' , 10 ) ;
}
fclose ( $handle ) ;
$fileName = 'data.txt' ;
$handle = fopen ( $fileName , 'rb' ) or die ( '打开文件失败' ) ;
$contents = '' ;
while ( ! feof ( $handle ) ) {
$contents . = fread ( $handle , 1024 ) ;
}
fclose ( $handle ) ;
echo $contents ;
文件锁定机制
flock($handle, LOCK_EX);文件写入数据时使用
flock($handle, LOCK_UN);文件锁的释放
知识点5:文件上传
此前,需要了解两个php配置文件中的选项
**upload_max_filesize**, 默认2M, 作用:限制php处理上传文件大小的最大值,必须小于post_max_size的值。
**post_max_size**, 默认8M,作用:限制通过POST方法可以接受信息的最大值,此值应当大于配置指令upload_max_filesize的值,因为除了上传文件之外,还可能传递其他的表单域。
$FILES [ 'myfile' ] [ 'name' ] ;
$FILES [ 'myfile' ] [ 'size' ] ;
$FILES [ 'myfile' ] [ 'tmp_name' ] ;
$FILES [ 'myfile' ] [ 'error' ] ;
$FILES [ 'myfile' ] [ 'type' ] ;
bool move_uploaded_file ( string filename, string destination)
move_uploaded_file ( $_FILES [ 'myfile' ] [ 'tmp_name' ] , $path . '/' . $filename ) ;
知识点:6:文件下载
< a href = ' http://www.mamaso.cn/static/admin/book.rar' > 下载文件</ a>