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

Полезные мелочи

В этой главе будет приведено несколько приемов на РНР, которые не используют каких-либо еще не разобранных в предыдущих главах команд или функций РНР, однако вполне могут вам пригодиться при создании сайтов.

Счетчик посещений

Команды, использующиеся в сценарии счетчика посещений, вам должны быть уже знакомы из предыдущих глав, поэтому ограничусь краткими комментариями к каждой строке.

Начало сценария:

<?php

Укажем имя папки, где будет храниться файл счетчика, и его имя, записав их в соответствующие переменные:

$dirct="foldcount"; $cnt="counter.php";

В том случае, если файл счетчика существует (т. е. визит на страницу и срабатывание данного сценария – не первые)…

if (file_exists("$dirct/$cnt")==True) {

…считаем число из файла и запишем его в переменную $sr. Ее мы потом выведем на страницу в качестве показателя числа посещений, а также, увеличив на 1, получим число посещений, включая данное.

$hdl = fopen("$dirct/$cnt", "r+");
$sr = fread($hdl, filesize("$dirct/$cnt"));
fclose($hdl);
$sr++;
}

Примечание
Для того чтобы из программы на РНР считать содержимое какого-либо файла или записать в него данные, этот файл нужно сначала открыть – командой fopen (так уж устроен РНР). При этом открытому файлу присваивается некое "внутреннее имя"' – так называемый дескриптор, и именно его возвращает функция fopen. Первый параметр fopen – имя файла (вместе с относительным или абсолютным путем к нему), второй – способ открытия файла
.

В зависимости от второго параметра функции fopen файл может быть открыт по-разному – для чтения, для записи, с очисткой содержимого или нет. Возможные параметры fopen такие:

  • r – открыть файл только для чтения и приготовиться читать его с начала.
  • r+ – открыть файл для чтения и для записи и приготовиться работать с ним с его начала.
  • w – открыть файл только для записи, предварительно удалив из него все содержимое, причем если файл с указанным именем не существует, то создается новый файл с таким именем.
  • w+ – открыть файл как для записи, так и для возможного последующего чтения, предварительно удалив из него все содержимое, причем если файл с указанным именем не существует, то создается новый файл с таким именем.
  • а – открыть файл только для записи и приготовиться дописывать данные в его конец. Если файл с указанным именем не существует, то создается новый файл с таким именем.
  • а+ – открыть файл для записи и для чтения и приготовиться дописывать данные в его конец. Если файл с указанным именем не существует, то создается новый файл с таким именем.

Открываемый файл может располагаться и на удаленном сервере – в этом случае oft будет доступен только для чтения независимо от параметров открытия файла. Путь к файлу в таком случае следует указывать полностью – начиная с http:// или ftp://.

Если же файла со счетчиком нет, т. е. посещений раньше не было…

else

Справедливости ради стоит сказать, что такая фраза не совсем корректна по сути, но для практической работы подобный взгляд вполне можно использовать.

$sr=l;

Выведем на страницу данные о числе посетителей…

echo ("Посетителей – $sr");

…и, снова открыв файл счетчика, но теперь уже для записи и очистив все его содержимое (видите параметр "w+"?), запишем в него значение переменной со сведениями о количестве посещений:

$hdl2 = fopen("$dirct/$cnt", "w+");
fwrite($hdl2, $sr);
fclose($hdl2);
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.