Иллюстрированный самоучитель по PHP

Файл otziv.php

Если же файлы со сведениями об оценке уже существуют…

else

…то считаем для начала содержимое файла с количеством оценок в переменную:

kvo…
$hdll = fopen("$dirct/$kolvooc", "r+");
$kvo ¦ fread($hdll, filesize("cnt/$kolvooc"));

…а затем увеличим значение этой переменной на 1 – что и будет новым количеством оценок, с учетом последней выставленной:

$kvo++;

Теперь нам надо вернуть точку считывания (так называемый "указатель") в начало файла – для того, чтобы записать в файл новое значение количества оценок. Ведь в результате проведения операции чтения количества оценок из файла точка считывания – указатель – переместилась в его конец. Для совершения данной операции воспользуемся командой rewind:

rewind($hdll);

Примечание
Команда rewind (дескриптор открытого файла) перемещает точку считывания и записи данных в файл (т. е. указатель файла), в начало этого файла. Если вы записываете что-либо в файл после считывания из него данных, то вам необходимо перед записью воспользоваться этой командой
.

Следует помнить, что если файл был открыт командой fopen с параметром а или a+, то независимо от положения указателя запись новых данных командой fwrite будет осуществляться вконец файла.

Запишем новое значение количества оценок в предназначенный для хранения этой величины файл…

fwrite($hdll,$kvo);

…и закроем его.

fclose($hdll);

Теперь разберемся со средним баллом. Откроем файл, где хранится его значение…

$hdl2 = fopen("$dirct/$ocenka", "r+");

…запишем это значение в переменную…

$sred= fread($hdl2, filesize("cnt/$ocenka"));

…и рассчитаем новую величину среднего балла – на основе его старого значения, а также информации о количестве оценок и новой оценки.

$sred=($sred*($kvo-l)+$ocen)/$kvo;

Теперь запишем эти сведения в предназначенный для них файл – точно так же, как и парой абзацев выше.

rewind($hdl2); fwrite($hdl2,$sred); fclose($hdl2);

Собственно, и все.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.