五、文件系统

5.1 读取文件内容

php有丰富的文件操作函数,最简单的读取文件的函数为file_get_contents(),可以将整个文件全部读取到字符串中。

$contents=file_get_contents("./test.txt");

file_get_contents可以通过参数控制读取内容的开始点以及长度。

$content=fule_get_contents('./test.txt',null.null,100,500);

php中也有类似c语言操作文件的方法,使用fopen,fgets,fread等方法,fgets可以从文件指针中读取一行,freads可以读取指定长度的字符串。

$fp=fopen('./test.txt','rb');
while(!feof($fp)){
    echo fgets($fp);..读取一行
}
fclose($fp);

使用fopen打开的文件最好使用发close关闭文件指针,以避免文件句柄被占用

5.2 判断文件是否存在

在php中可以通过函数is_file和file_exists来判断文件是否存在

如果只判断文件存在使用file_exists就行,file_exists不仅可以判断文件是否存在,同时也可以判断目录是否存在,if_file是确切的判断给定路径是否为一个文件

可以使用is_readable和is_writeable在文件是否存在的基础上判断文件是否可读与可写

$filename = './test.txt';
if (is_writeable($filename)) {
    file_put_contents($filename, 'test');
}
if (is_readable($filename)) {
    echo file_get_contents($filename);
}

5.3 取得文件的修改时间

php文件系统获取文件的元属性信息

php文件系统可以通过内置函数获取文件的元信息数据,包括文件所有者、创建时间、修改时间、最后访问时间等。

fileowner:文件所有者
filectime:文件创建时间
filemtime:文件修改时间
fileatime:文件的访问时间

5.4 取得文件的大小

通过filesize函数获取文件大小,文件大小以字节数表示。

如果需要转换文件大小单位可自定义函数实现

function getsize($size, $format = 'kb') {
    $p = 0;
    if ($format == 'kb') {
        $p = 1;
    } elseif ($format == 'mb') {
        $p = 2;
    } elseif ($format == 'gb') {
        $p = 3;
    }
    $size /= pow(1024, $p);
    return number_format($size, 3);
}
$filename = '/data/webroot/usercode/code/resource/test.txt';
$size = filesize($filename);
$size = getsize($size, 'kb'); //进行单位转换
echo $size.'kb';

5.5 写入内容到文件

写文件分为两个种方式,最简单的方式是采用file_put_contents函数

$filename = './test.txt';
$data = 'test';
file_put_contents($filename, $data);

数据参数可以是一个一维数组,当$data是数组的时候会自动将数组链接起来,相当于 $data=implode('',$data);

php同时也支持采用fwrite方式进行写入

$fp=fopen('./test.txt','w');
fwrite($fp.'hello');
fwrite($fp,'word');
fclose($fp);

5.6 PHP文件系统之删除文件

和Unix系统命令相似,使用unlink函数进行文件删除

unlink($filename);

删除文件夹使用rmdir函数,文件夹必须为空,不为空或没有权限都会提示失败

rmdir($dir);

若文件夹中存在文件则可以先循环删除目录中的所有文件,然后删除目录,可使用glob函数遍历所有文件

foreach(glob(*) as $filename){
    unlink($filename);
}
最后修改:2019 年 03 月 19 日
如果觉得我的文章对你有用,请随意赞赏