日期:2011-04-28 浏览次数:20510 次
不少朋友用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);