我是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);
?>
答案 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>";
}