php在文件中增加成绩

时间:2014-03-27 03:56:35

标签: php

我是php的新手,我正在尝试执行以下任务。我填写我这样做的时间更长。甚至,它不起作用。任何人都可以帮忙,建议一个简单的方法吗?谢谢! 的任务 您的任务是编写一个PHP脚本,从文件grades.txt读取成绩,将成绩增加1并写入递增 得分到文件results.txt,最后从results.txt打印成绩。如果等级为5,则不会增加。成绩 grades.txt各自位于其自己的行中,并且成绩中的位数可能会有所不同。成绩在0-5之间。写的成绩 results.txt也应该都在各自的行中。  示例输出

New grades:  
3  
5  
2  
1  
5  
3  
5  
5  
3  
3  
5  
4  

我的代码:

<?php  
$fileName1="grades.txt";  
$fp = fopen($fileName1, "r");  
$i=0  
while(!feof($fp)&& fgets($fp)<5){  
$Grades[$i+1]=fgets($fp);  
$i++  
}  
fclose($fp);  
$fileName2="results.txt";  
$fr = fopen($fileName2, "w");  
fwrite($fr,$Grades[$i]."\n");   
$file_handle = fopen("results.txt", "r");  
while (!feof($file_handle)) {  
   $line = fgets($file_handle);  
   echo "New grades:\n"  
   echo $line;  
}  
fclose($file_handle);  
?>  

1 个答案:

答案 0 :(得分:0)

为什么不写这样简单的东西?

<?php
$incr = array();
foreach(file('grades.txt') as $v) # Opening the file and looping through the values
{
    if($v==5){$incr[]=$v;} # If grade is greater than 5 , dont increment
    else{
        $incr[]=$v+1;
    }
}
//array_walk($incr,function(&$v){ $v=trim($v);});
$incr = array_map('trim',$incr);
$str = implode(PHP_EOL,$incr); # Implodes the array with PHP_EOL
file_put_contents('results.txt',$str); # Writes to the file

#Displaying from results...

foreach(file('results.txt') as $v) # Opening the new file and displaying the results
{
    echo $v."<br>";
}