Rozdział 7. ♦ System plików 215
echo("<tr><td>zi elony</td><td>$zi elony</td>"): echo(“<td>$zielony_proc</td></tr>"):
echo("<tr><td>niebi eski </td><td>$niebi eski </td>"): echo( ’’<td>$niebieski_proc</td></tr>"):
echo("<tr><td>fi oletowy</td><td>$fi oletowy</td>"): echo("<td>$fioletowy_proc</td></tr>");
echo("<tr><td>czarny</td><td>$czarny</td>"): echo("<td>$czarny_proc</td></tr>");
echo("</table>");
i f(i sSet($_GET[“act i on”])){ if($_GET["action"] == "show“){ showC);
}
else if($_GET["action”] — "vote"){ if(vote()) showO;
el se{
echo("Otrzymano nieprawidłowe dane."):
}
else{
edioCOtrzymano nieprawidłowe dane.");
</div>
</body>
</html>
Zadaniem funkcji show jest wyświetlenie tabeli zawierającej wyniki głosowania. Przykładowy wygląd takiej tabeli został przedstawiony na rysunku 7.11. Prezentowane są trzy kolumny; pierwsza zawiera nazwy kolorów, druga — liczbę głosów oddanych na każdy kolor, trzecia — procent głosów oddanych na każdy z kolorów. Działanie funkcji rozpoczyna się od sprawdzenia, czy istnieje plik color.txt zawierający dane. Jeśli plik istnieje, dochodzi do próby otwarcia go w trybie do odczytu; jeśli natomiast plik nie istnieje, następuje próba utworzenia go przez wywołanie funkcji fopen w trybie w+. Jeżeli którakolwiek z tych operacji zakończy się niepowodzeniem, funkcja wyświetla komunikat o błędzie i kończy działanie.
Po otwarciu pliku odczytywane są jego kolejne wiersze za pomocą funkcji fread. Pierwszy wiersz zawiera informację o liczbie głosów oddanych na kolor czerwony, drugi
— o liczbie głosów oddanych na kolor zielony, trzeci — o liczbie głosów oddanych na kolor niebieski, czwarty — o liczbie głosów oddanych na kolor fioletowy i piąty
— o liczbie głosów oddanych na kolor czarny. Odczytane wartości poddawane są konwersji na typ int (odpowiadają za to wywołania funkcji intval) i przypisywane zmiennym: czerwony, zielony, niebieski, fioletowy i czarny. Całkowita liczba oddanych