Эта функция позволяет добавлять в изображения текстовые строки, в данном случае — вводить числа, взятые из журнала, соответствующие количеству посещений. Назовем этот файл counter, php:
<?php
function hitCount($fileName) <
Сначала проверим, можно ли открыть файл для работы со счетчиком:
if (!$filePointer » fopen($fileName, "r+")) { echo("Error opening file $fileName\n"); exit;
i
Затем получим количество посещений из файла журнала:
if (!Shits = fread($filePointer, filesize($fileName))) { echo ("Error reading hits from $fileName\n"); exit;
}
//Инкрементируе»< количество посещений $hits++;
//Возвращаемся к началу журнала для записи заново if (rewind(SfilePointer) == 0) { echo("Couldn't rewind file"): exit;
Запишем в файл новое количество посещений, если запись в этот файл уже не происходит. Мы вызываем функцию flock(), чтобы гарантировать, что никакие другие процессы не используют файл в тот же момент времени, что обеспечивает точность:
if (flock($filePointer, 2)) {
if (!fwrite($filePointer, $hits, strlen($hits))) { echo("Couldn't write updated hits to $fileName"); exit;
)
}
flock($fiiePointer, 3);
Создаем графическое изображение из счетчика посещений с помощью функции, описываемой ниже:
Simage = makelmage($hits);
Наконец, создаем тег <irng> для вызывающей страницы и делаем его приемлемым для неграфических броузеров:
$counter - "<img src=\"$image\" alt=\"Hits: $hits\">"; return $counter;
t ;
Теперь нам нужна функция, которая создаст наше динамическое изображение и возвратит путь к нему:
function makelmage($number) {
Это имя файла для нашего счетчика: $image = "./hits.png";
Настроим некоторые переменные для определения ширины и высоты нашего динамического изображения:
SlenHits - strlen($number); ScharHeight = ImageFontHeight(5); $charWidth = ImageFontWidth(5); SstringWidth = $charWidth * SlenHits;
Увеличим немного наше изображение, чтобы оно лучше смотрелось:
SimgWidth = SstringWidth + 10; SimgHeight = $charHeight + 10;
//Найдем центр изображения SimgMidX = SimgWidth / 2; SimgMidY = SimgHeight / 2;
Далее создаем изображение, идентифицируемое как $i, используя вычисленные ранее значения:
$i - ImageCreate($imgWidth, SimgHeight);
Установим для нашего изображения некоторые стандартные имена цветов - поскольку $white задан первым, он становится цветом фона для нашего изображения. $black - цвет текста, а также тени, которую мы создадим: