PHP 中,数据通常都是存储在MySQL数据库当中的。但是有些时候,我们还是需要使用PHP读写一些本地文件。比如生成静态页面或者数据的本地缓存。
PHP5+ 提供了一种方法 file_put_contents(file,data,mode,context),它将一个字符串写入文件,返回写入到文件内数据的字节数。和依次调用 fopen(),fwrite() 以及 fclose() 功能一样,方便了使用。
参数描述
file
必需。规定要写入数据的文件。如果文件不存在,则创建一个新文件。
data
可选。规定要写入文件的数据。可以是字符串、数组或数据流。
mode
可选。规定如何打开/写入文件。可能的值:
FILE_USE_INCLUDE_PATH:使用包含目录定义
FILE_APPEND:追加,防止被改写原文件内容
LOCK_EX:独占锁定方式
如果参数省略则默认为改写文件方式
context
可选。规定文件句柄的环境。
context 是一套可以修改流的行为的选项。
PHP 参考书中,指明了读文件方法 file_get_contents 的可用版本 (PHP 4 >= 4.3.0, PHP 5),PHP 5 进行了扩展, 5.0.0 添加了对 context 的支持。 5.1.0 添加了 offset 和 maxlen 参数。
具体用法:file_get_contents ( file , flags , context , offset , maxlen)
参数描述
file
必需。规定要写入数据的文件。如果文件不存在,则创建一个新文件。
flags
可选。规定如何读取文件。可能的值:
FILE_USE_INCLUDE_PATH:使用包含目录定义
FILE_TEXT:文本格式内容。
FILE_BINARY:仅用于二进制格式。
如果参数省略则默认为FILE_BINARY
context
上下文
offset
可选。起始读位置,偏移。
maxlen
可选。读入长度。
PHP5以下版本我们用 fopen, fread, fwrite, fclose 进行文件读写。下面附上一段例子:
每当我们访问此网页的时候,会显示出访问过的IP以及访问时间;同时当前的访问也会被记录,以便在下次访问的时候出现。
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 Lo