AAA Главная
Примеры PHP Примеры JavaScript Примеры Ajax Примеры CSS,HTML

Графический счётчик на PHP

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

Данный пример демонстрирует работу простого графического счетчика. По функциональности он совершенно идентичен текстовому счетчику.

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

Это изображение надо сохранить под именем counter.png

В скрипте использована библиотека GD, перед тем как пользоваться этой библиотекой, узнайте у хостера, подключена ли эта библиотека.
Теперь сам скрипт counter.php:

$dat_file="counter.dat"; // Файл счетчика
     if (!is_file($dat_file)) {     // Пытаемся создать файл.
            if (@touch($dat_file)) {
                @chmod($dat_file, 0777);    // Права доступа
            } else echo 'Нет файла ' . $dat_file . '. Создать не удалось. Выставите права 777 на папку.';
        }

    // Открывем файл счетчика и считываем текущий счет
    // в переменную $count
    $fn=fopen($dat_file,"r");
    $count=fgets($f,100);
    fclose($fn);

    $count=preg_replace("/ /","",$count); // Удаляем символ конца строки
    $count++; // Увеличиваем счетчик
    // Записываем данные обратно в файл
    $fn=fopen($dat_file,"w");
     @flock($fn, LOCK_EX);	// блокировка записи
     @fputs($f,"$count ");
     @fflush ( $fn ); //ОЧИЩЕНИЕ ФАЙЛОВОГО БУФЕРА И ЗАПИСЬ В ФАЙЛ
     @flock($fn, LOCK_UN); // Снятие блокировки
    fclose($fn);

    // Создаем новое изображение из файла
    if (is_file('counter.png'))    $img = ImageCreateFromPNG('counter.png');
	else $img=imagecreatetruecolor(88, 31);

    // Назначаем черный цвет
    $black = ImagecolorAllocate($im,0,0,0);
    // Выводим счет на изображение
    Imagestring($img,1,5,20,$count,$black);
    // Выводим изображение в стандартный поток вывода
    Header("Content-type: image/png");
    ImagePng($img);

Для вывода счётчика в html используйте :

    <IMG src="counter.php" WIDTH="88" HEIGHT="31" BORDER=0>

.

© Copyright 2008-2017 by KDG