我在这里仍在学习使用 PHP 编码,目前我遇到了一个问题。
我有一个 .txt 文件,比如“results.txt”,其中包含 5 个不同的选项,后面有一个数字。这些代表了 5 个不同选项的投票。布局是这样的:
1|3
2|6
3|2
4|8
5|10
阶梯数是选项获得的票数。
我需要做的是对选票求和,将其加 1,然后回显结果:
echo "Total votes: 30 votes"
在这种情况下。
用于投票的表格是您的正常且简单的表格,有 5 种不同的选项:
<form action="aanestys.php" method="get">
Choose an option:
<select name="vote">
<option value=1 selected>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
<option value=5>5</option>
</select>
<br>
<input type="submit" value="Send">
</form>
您对如何执行此操作有任何提示或建议吗?我不一定需要一个直接的答案,因为我确实想学习使用 fopen、fgets 和 fwrite 命令,而不仅仅是复制/粘贴代码。
编辑:似乎投票是通过表格选择的选项。而且 .txt 文件必须是最新的。到目前为止,我有这个:
<?php
$lines = file("results.txt");
$vote = $_GET['vote'];
$summa = 0;
$val = array();
foreach($lines as $line) {
$var;
$var = explode("|", $line);
if ($vote == $var[0]){
$var[1]++;
array_push($val, $var[0], "|", $var[1]);
} else {
array_push($val, $var[0], "|", $var[1]);
}
$summa = $summa += $var[1];
}
$ulos = implode("\n", $val) . "\n";
//Somehow, because this is an exercise, the checker says this is right
//although it's totally not even close to it.
echo "Total votes: $summa votes.";
file_put_contents("results.txt", $ulos);
?>
但是票数是不对的。这有什么问题?