B011-PHP进行txt文件读写

这是《PHP和MySQL.Web开发原书第4版》第2章的读书笔记。

1

Lesson02.php

没有什么特别的,就是一个简单的提交页面

2

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);
?>

参考地址:

  1. 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

Posted in PHP