PHP读写文件示例

网络整理 - 07-27

PHP中,数据通常都是存储在MySQL数据库当中的。但是有些时候,我们还是需要使用PHP读写一些本地文件。比如生成静态页面或者数据的本地缓存。

我们用一个简单的访问日志来演示一下fopen, fread, fwrite, fclose的用法。

每当我们访问此网页的时候,会显示出访问过的IP以及访问时间;同时当前的访问也会被记录,以便在下次访问的时候出现。

<?php
header("Content-Type: text/plain");

$visitorIP = $_SERVER["REMOTE_ADDR"];
$currentTime = date("H:i:s");

if( file_exists("./visitLog.log") ):
        $logFileHandle = fopen("./visitLog.log", "r+");
        $logFileSize = filesize("./visitLog.log");
        $logContent = fread($logFileHandle, $logFileSize);
else:
        $logFileHandle = fopen("./visitLog.log", "x+");
        $logContent = "\r\tNo more Log";
endif;

echo "Visit Log:" .
         $logContent;

fwrite($logFileHandle, "\r\t" . $visitorIP . "\t" . $currentTime);
fclose($logFileHandle);
/* author: */
?>


首先我们需要使用 file_exists(filename) 函数来判断日志文件是否存在,如果不存在则创建;
随后如果存在,我们直接读取其所有内容,用 fread(fileHandle, sizeToRead) 来读取(如果需要读取所有的内容,sizeToRead 可以直接填写文件的大小);
读取完之后,我们在用 fwrite(fileHandle, contentToWrite) 来写如新的访问记录;
当所有的文件操作都完成后,我们用 fclose(fileHandle) 来关闭已打开的日志文件。
所有操作完成!