日期:2011-04-28  浏览次数:20475 次


不少朋友用dat文件存储小容量数据,构建文本数据表使用,很多和我一样属于小鸟级的朋友虽然对如何追加,删除文件,清空文件都非常熟悉,但对于对文件内的某一条记录操作去无奈了,最近写了一个小留言本,把这个功能实现,这样就给大家说一下了。

例:
data.dat
_________________________________________________________

[1] name∷sex∷phone∷address∷email∷

_________________________________________________________
此文件为保存数据的文件
[1]  -------------   代表记录数据
∷   -------------   代表数据表的分割符号,可以为非\r,\n的字符

读取页面read.php
(内容略)
将data.dat内的数据编排显示。如下

1、你多大拉  ---   发表人(sports98) 2002-13-42  □(checkbox)
2、你多大拉  ---   发表人(sports98) 2002-13-42  □(checkbox)
3、你多大拉  ---   发表人(sports98) 2002-13-42  □(checkbox)
4、你多大拉  ---   发表人(sports98) 2002-13-42  □(checkbox)
通过form将checkbox信息传到
do.php


do.php内容如下:

$filename="data.dat";//数据文件
$fp=file($filename);//将数据文件读入
$number=count($fp);//计算总数据量
for($int_a=0;$int_a<$number;$int_a++){
     if($int_a==$checkbox[])//这里可以是一个也可以是多个判断,这里是以删除一个记录为例
     continue;
     else
       $newmem.=$fp[$int_a]."\r"; //将文件内容赋新值
}
$wfp=fopen($filename,"w");
fputs($wfp,$newmen);
fclose($wfp);
删除的思想是,将文本内的数据读入内存,在内存中操作完毕后再清空文件写,把符合删除条件的记录跳过就可以删除了,
编辑就是把符合条件的记录替换了就可以拉~



$filename="data.dat";//数据文件
$fp=file($filename);//将数据文件读入
$number=count($fp);//计算总数据量
for($int_a=0;$int_a<$number;$int_a++){
     if($int_a==$checkbox[])//这里可以是一个也可以是多个判断,这里是以编辑一个记录为例
       $newmem.="";//这里是修改后的内容
     else
       $newmem.=$fp[$int_a]."\r"; //将文件内容赋新值
}
$wfp=fopen($filename,"w");
fputs($wfp,$newmen);
fclose($wfp);