B011-PHP进行txt文件读写
这是《PHP和MySQL.Web开发原书第4版》第2章的读书笔记。
Lesson02.php
没有什么特别的,就是一个简单的提交页面
Lesson02-get.php
打开文件
使用fopen()函数们可以读取文本文件,目前没有遇到编码的问题。
读取文件内容
使用fgets()可以读取文件中的每一行数据,通过使用feof()函数判断代码结尾,依次读取。
每次读取之后,文件的光标,会自动移动到下一行。
<?php
date_default_timezone_set('PRC');
//读取文件
$f = fopen("lesson02-txt.txt",'a+');
//isset判断是否有数据post过来
if(isset($_POST['msg'])){
$msg = $_POST["msg"];
$msg = date("h:i:s")." ".$msg . "\n";
//如果有数据post过来,就把数据保存到txt中
fwrite($f,$msg);
}
// echo fread($f,999);
// 重新定位文件头,也即是把光标移动到文件其实位置
fseek($f,0);
//遍历文档中的每一行数据,因为是用eof找句子结束的,所以是遍历每一行数据
while (!feof($fa)){
echo "<p>".fgets($f,999)."</p>";
}
fclose($f);
?>
参考地址:
- PHP 文件读取 fread、fgets、fgetc、file_get_contents 与 file 函数取方法的对比:http://blog.csdn.net/jaray/article/details/22173373
文件写入
使用fwrite()函数可以向文本文件中写入内容,有可能会出现覆盖的情况,具体是追加还是覆盖,取决于一开始使用fopen打开文件的时候,所使用的模式
$f = fopen("lesson02-txt.txt",'a+');
这个是追加的模式,关于文件打开模式,参考下面的文章:http://www.w3school.com.cn/php/func_filesystem_fopen.asp
文件位置定位
fwrite之后,默认会把光标定位到文件末尾,这个时候,我们在使用fgets,是读取不到内容的,所以需要使用fseek()函数,把光标重新定位到文件其实位置
fseek($f,0);
关于文件定位,参考文章:http://www.runoob.com/php/func-filesystem-fseek.html
联系作者