文件指针
若要使用文件指针方式进行操作,需要先打开文件,创建文件指针,然后使用指针进行读写,最后操作完成后关闭文件。
1、打开文件
fopen($filename, $mode)
$filename表示打开的文件路径,不仅可以是本地文件,还可以是HTTP或FTP协议的URL地址;$mode表示文件打开的模式
2、关闭文件
fclose($handle)
$handle表示fopen函数成功打开文件时返回的文件指针。如果文件关闭成功返回true,失败返回false
3、读取文件
fread($handle, $length)
用于读取指定长度的字符串。$length用于指定读取的字节数。该函数在读取到$length指定的字节数,或读取到文件末尾时就会停止读取,返回读取到的内容。当读取失败时返回false
当使用fread函数读取文件时,会影响文件指针指向文件的位置。通过ftell函数可以返回当前文件指针的位置,通过rewind()函数可以倒回文件指针的位置
fgetc($handle)
用于在打开的文件中读取一个字符,该函数每次只能读取一个字节,如果遇到EOF时,返回false
fgets($handle[,$length])
用于读取文件中的一行。$length用于指定读取的字节数,该函数从文件中读取一行,并返回长度最多为$length-1字节的字符串。在碰到换行符、EOF或已经读取了$length-1字节后停止。如果没有指定$length,则默认为1024字节
4、写入文件
fwrite($handle, $string[,$length])
$handle表示文件指针,$string表示要写入的字符串,$length表示指定写入的字节数,如果省略,表示写入整个字符串,fwrite函数会从文件指针的位置开始写入内容
目录句柄
对目录的操作可以通过目录句柄来完成。
1、opendir($path)
用于打开一个目录句柄。如果执行成功返回资源类型的目录句柄,失败返回false
2、closedir($handle)
$handle目录的句柄,用于关闭目录句柄,无返回值
3、readdir($handle)
用于从目录句柄中读取条目。函数执行成功返回下一个文件的文件名,失败时返回false
4、rewinddir($handle)
函数执行后将$handle重置到目录的开头,没有返回值
目录遍历
$handle = opendir('C:/java');
while (FALSE !== ($file = readdir($handle))) {
echo $file."<br />";
}
closedir($handle);
注:在遍历任何一个目录的时候,都会包括点和点点两个特殊目录,前者表示当前目录,后者表示上一级目录
统计目录中所用文件的大小
function totalFiles($path) {//$path表示目录的路径
$size = 0;
$handle = opendir($path);
while (FALSE !== ($file = readdir($handle))) {
//用于排除遍历目录时的特殊目录
if ($file != '.' && $file != '..') {
//用于拼接指定目录下的子目录或文件目录
$file = "$path/$file";
//用于判断路径是否为目录,如果是目录则继续递归,否则获取文件大小
$size += is_dir($file) ? totalFiles($file) : filesize($file);
}
}
closedir($handle);
return $size;
}
echo "当前目录大小:" . totalFiles('./') . "字节";
来源:CSDN
作者:@我不认识你
链接:https://blog.csdn.net/weixin_41897680/article/details/103838557