唠叨老大以前写的$fp = fopen($filename,"r+"); //以读写方式打开文件
$num = 0; //初始行计数
$start = 20; //欲操作的行
while(! feof($fp)) {
$tell = ftell($fp); //保存开始读取的位置
$buf = fgets($fp,2048); //逐行读取
$num++;
if($num == $start) { //假定首行为1
$lf = preg_replace("/(\r?\n)/","\\1",$buf); //取得换行符,linux:\n dos:\r\n
$len = strlen($buf); //取得当前行长
$formt = sprintf("%%%ds$s",$len-strlen($lf),$lf);//构造一个形如"%12s\r\n"的格式串
$buf = sprintf($formt,$out);//改写为$out的内容,注意这里产生的新串必须与原串相同长度相同,可能用str_pad更好些。
fseek($fp,$tell); //回绕当行开始处
fputs($fp,$buf); //把新串写入文件
break;
}
}
fclose($fp);
$num = 0; //初始行计数
$start = 20; //欲操作的行
while(! feof($fp)) {
$tell = ftell($fp); //保存开始读取的位置
$buf = fgets($fp,2048); //逐行读取
$num++;
if($num == $start) { //假定首行为1
$lf = preg_replace("/(\r?\n)/","\\1",$buf); //取得换行符,linux:\n dos:\r\n
$len = strlen($buf); //取得当前行长
$formt = sprintf("%%%ds$s",$len-strlen($lf),$lf);//构造一个形如"%12s\r\n"的格式串
$buf = sprintf($formt,$out);//改写为$out的内容,注意这里产生的新串必须与原串相同长度相同,可能用str_pad更好些。
fseek($fp,$tell); //回绕当行开始处
fputs($fp,$buf); //把新串写入文件
break;
}
}
fclose($fp);
update table set adfas='1231" where adfas="11111'
这样可乐而不为呢
$poll=file("poll.txt");//poll.txt中存放投票数
$option=file("option.txt");//投票选项
$poll[$value]=$poll[$value]+1;//$value=$_POST[];票数加一
$max=count($poll)-1;//
for($p=0;$p<=$max;$p++){
$string.=$poll[$p]."\r\n";
}
$string.=$poll[$max];//把poll.txt文件读到一个数组中
unlink("poll.txt");//删除poll.txt
$fp=@fopen("poll.txt", "w");//新建文件并以写入方式打开
@fwrite($fp,$string);写入数据
@fclose($fp);
$poll=file("poll.txt");//再读一次
for($i=0;$i<=$max;$i++){
$all=$poll[$i]+$all;
}//总记录数
echo "<html><title>投票结果</title><body><table width=\"500\">";
for($n=0;$n<=$max;$n++){
echo "<tr><td align=left>";
for($t=0;$t<=@floor(($poll[$n]/$all)*50);$t++){
echo"*";//输出一个大致的图形
}
echo "</td><td>".$poll[$n]."票".@floor(($poll[$n]/$all)*100)."% | $option[$n]</td></tr>";//输出票数和所占的比例
}
echo "</table></html>";
比如原来poll.txt是这样的:
1
1
1
1
1
提交一次以后
变成这样的了:
2
1111
中间多出了很多空行.
不知道是怎么回事??
for($p=0;$p<=$max;$p++){
$string.=$poll[$p]."\r\n";
}
手册上是这样说的:
file() 将文件作为一个数组返回。数组中的每个单元都是文件中相应的一行,包括换行符在内。
我后面加的\r\n是多余的.
这句是没有必要的,因为
$fp=@fopen("poll.txt", "w");
就已经把它清空了