PHP довольно гибкий язык программирования веб-приложений, который в своём ряду имеет большое количество функций для работы с данными. Наряду с этим, в PHP предусмотрены функции для работы с графикой, которые позволяют выполнять различные манипуляции с графическими данными. Перед использованием этих функций необходимо убедиться подключена ли библиотека GD в вашем интерпретаторе PHP. В данном примере мы попробуем создать простой графический счетчик, который будет выводиться в виде изображения.
Создайте два файла, counter.php – скрипт счетчика и index.html – здесь изображение счетчика будет подключаться.
Код counter.php:
<?php # файл данных счетчика $dat_file="counter.dat"; # создаем файл, если его нет if (!is_file($dat_file)){ if (@touch($dat_file)) @chmod($dat_file, 0777); # права доступа else echo 'Не удалось создать файл '.$dat_file.'. Недостаточно прав для создания файла'; } # открываем файл счетчика для чтения $fn=fopen($dat_file,"r"); $count=fgets($fn,100); # получаем значение счетчика fclose($fn); $count=preg_replace("/ /","",$count); # удаляем символ конца строки # увеличиваем счетчик $count++; # записываем значение в файл $fn=fopen($dat_file,"w"); @flock($fn, LOCK_EX);# блокировка записи @fputs($fn,"$count "); @fflush($fn); # очищаем файловый буфер и записываем в файл @flock($fn, LOCK_UN);# снимаем блокировку fclose($fn); # cоздаем новое изображение из файла $img = (is_file('counter.png') ? ImageCreateFromPNG('counter.png') : imagecreatetruecolor(88, 31)); # задаем цвет текста $color = ImagecolorAllocate($img,255,255,255); # выводим счет на изображение Imagestring($img,1,5,20,$count,$color); # вывод изображения Header("Content-type: image/png"); ImagePng($img); ?>
После этого в файле index.html вставить код для изображения счетчика:
<img src="counter.php" width="88" height="31" border="0">
Запросите в браузере файл index.html, при каждом обновлении страницы счетчик должен увеличиваться. Если всё так, значит всё в порядке. Однако обратите внимание, что это лишь примитивный вариант счетчика, при желании вы можете усложнять логику, в зависимости от своих задач.