PHP 文件系统(PHP 5 Filesystem 函数) 全解析

    xiaoxiao2021-04-15  65

    PHP 文件系统

    PHP 5 Filesystem 函数允许您访问和操作文件系统。

    Filesystem 函数是 PHP 核心的组成部分。无需安装即可使用这些函数。

    1. 读取、写入文件内容

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

    $content = file_get_contents('file1.txt'); echo $content;

    file_put_contents()

    把一个字符串写入文件中。与依次调用 fopen(),fwrite() 以及 fclose() 功能一样。

    提示:使用 FILE_APPEND 可避免删除文件中已有的内容,而是在后面追加。

    file_put_contents('file1.txt', 'Hello World.', FILE_APPEND); $content = file_get_contents('file1.txt'); echo $content;

    类C读取文件操作

    PHP也提供类似于C语言操作文件的方法,fopen,fgets,fread,fclose等方法,

    方法作用fopen()打开指定文件feof()检测是否已到达文件末尾fgets()读取一行fread()一次读取全部fwrite()二进制方式写入文件fclose()释放指定文件 // rb是以读写的方式打开一个二进制文件,r只读 $file = fopen('file1.txt', 'rb'); if (!feof($file)) { echo fgets($file) . '读取一行<br>'; } fclose($file); $file = fopen('file1.txt', 'rb'); if (!feof($file)) { echo fread($file, 4096) . '读取全部<br>'; } fclose($file);

    2. 判断文件是否存在、可读写

    is_file()

    如果只是判断文件存在,使用file_exists就行。

    $file = 'file1.txt'; if (is_file($file)) { echo file_get_contents($file); }

    file_exists()

    file_exists不仅可以判断文件是否存在,同时也可以判断目录是否存在,从函数名可以看出,is_file是判断给定的路径是否是一个文件。

    $file = 'file1.txt'; if (file_exists($file)) { echo file_get_contents($file); }

    is_readable / is_writeable

    判断文件是否可读。判断文件是否可写。

    $file = 'file1.txt'; if (is_writeable($file)) { echo 'is writeable'; } if (is_readable($file)) { echo 'is readable'; }

    3. 文件元属性

    文件有很多元属性,包括:文件的所有者、创建时间、修改时间、最后的访问时间等。

    元属性解释fileowner获得文件的所有者filectime获取文件的创建时间filemtime获取文件的修改时间fileatime获取文件的访问时间

    其中最常用的是文件的修改时间,通过文件的修改时间,可以判断文件的时效性,经常用在静态文件或者缓存数据的更新。

    $filename = 'file1.txt'; echo '所有者:' . fileowner($filename) . '<br>'; echo '创建时间:' . date('Y-m-d H:i:s', filectime($filename)) . '<br>'; echo '修改时间:' . date('Y-m-d H:i:s', filemtime($filename)) . '<br>'; echo '最后访问时间:' . date('Y-m-d H:i:s', fileatime($filename)) . '<br>'; //通过计算时间差 来判断文件内容是否有效 $mtime = filemtime($filename); if (time() - $mtime > 3600) { echo '<br>缓存已过期'; } else { echo file_get_contents($filename); }

    4. 获得文件的大小

    filesize()

    通过 filesize() 函数可以取得文件的大小,文件大小是以字节数表示的。

    $filename = 'file1.txt'; $filesize = filesize($filename); echo $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 = 'file1.txt'; $filesize = filesize($filename); $filesize = getsize($filesize, 'kb'); //进行单位转换 echo $filesize . 'kb';

    值得注意的是,没法通过简单的函数来取得目录的大小,目录的大小是该目录下所有子目录以及文件大小的总和,因此需要通过递归的方法来循环计算目录的大小。

    转载请注明原文地址: https://ju.6miu.com/read-670939.html

    最新回复(0)