有追分....PHP问题......................................

来源:百度知道 编辑:UC知道 时间:2024/06/23 09:01:37
我有一堆会员数据,

我根据条件选取了一批会员, //这个我会做..

然后把这批会员的电子邮件自动写进文本文档,并保存. //这个我都会做

每个文本记录100条数据,然后超过的部分,重新建立一个新的文本继续操作, //这个我不会...

我想问的就是,如何根据写进了多少条数据,然后再生成第二个文件..

就像PW后台备份数据一样,到达了设置一个文件记录多大的数据后,就生成第二个文本文档,

而我就是要达到了100条数据后,生成第二个...第三个..第四个..
2楼的大哥,首先谢谢你,我写入文件是利用PW论坛的writeover函数

$config = XXXX\r\n";
$config .= "XXXX\r\n";
writeover('tt/xx.txt',$config);

function writeover($filename,$data,$method="rb+",$iflock=1,$check=1,$chmod=1){

$check && strpos($filename,'..')!==false && exit('Forbidden');
touch($filename);
$handle=fopen($filename,$method);
if($iflock){
flock($handle,LOCK_EX);
}
fwrite($handle,$data);
if($method=="rb+") ftruncate($handle,strlen($data));
fclose($handle);
$chmod && @chmod($filename,0777);
}

可不可以跟你的方法结合???

全部写为文本你会呀,那就好,假释你全部写进文本文件的程序代码如下:

$fp=fopen("文件名","w");
while($row=mysql_fetch_array($res)){//你有可能是其它方式,这个不重要
$line="$row[0]";//可能不是这么简单,这个你明白就行
fputs($fp,$line);
}
fclose($fp);

把上面代码进行如下修改即可支持满100存新的文件

$line=0;//文件中已经写入的行数
$filename="文本文档";//你保存的文本文档的固定部分
$filecount=0;//文本文档的顺序号
while($row=mysql_fetch_array($res)){//你有可能是其它方式,这个不重要
$line="$row[0]";//可能不是这么简单,这个你明白就行
if ($line==0){//新文件开始
if ($filecount!=0) fclose($fp);//不是第一个文件,关闭以前的文件
$filecount++;
$fp=fopen("$filename$filecount","w");
}
}
fputs($fp,$line);
$line++;
if ($line>=100) $line=0;
}
fclose($fp);//关闭最后一个文件

补充:
那我就给你写一个改进的writeover函数,假设是writeover100,程序代码如下:

function writeover100($filename,$data,$method="rb+",$iflock=1,$check=1,$chmod=1){

$check && strpos($filename