Вторник, 16.06.2026, 05:51
Приветствую Вас Гость | RSS
Поиск по каталогу
Главная страница | Каталог статей | Регистрация | Вход

Информационные технологии
Форма входа
Меню сайта

Категории каталога
php [246]
perl [1]
perl
ASP [1]
AJAX [0]

Друзья сайта

Наш опрос
Оцените мой сайт
Всего ответов: 69

Начало » Статьи » Web программирование » php

Изменение внешнего вида счетчика в CNStats 2
Счетчик №4 - хитов всего, хитов сегодня, пользователей сегодня, процент роботов



В этом примере, помимо роботов мы немного изменим внешний вид счетчика - добавим тени, и с помощью отступов сделаем числа более удобочитаемыми.


<?
error_reporting(E_ALL & ~E_NOTICE);
include
"config.php";

// Эта функция позволяет определить длину строки в пикселях
function width($text) {
$box=imagettfbbox(7, 0, FONT_TAHOMA, $text);
return(
$box[2]-$box[1]);
}

// Шрифт, который мы используем для вывода счетчика.
// Можно взять из C:WindowsFonts
define('FONT_TAHOMA', 'tahoma.ttf');

// Внимание ! Изображение должно быть True-Color (24 бита)
$im=ImageCreateFromPng("button-tt.png");

$CONN=@mysql_connect($STATS_CONF["sqlhost"],
$STATS_CONF["sqluser"],
$STATS_CONF["sqlpassword"]);

if (
mysql_errno()==0) {
@
mysql_select_db($STATS_CONF["dbname"]);

if (
mysql_errno()==0) {

// Выбираем данные
// t_hits - хитов всего
// hits - хитов сегодня
// users - пользователей сегодня
// u_hits - хитов от посетителей
$r=@mysql_query("SELECT t_hits,hits,users, u_hits FROM cns_counter");

// Переносим единственную выбранную запись в ассоциативный массив
$res=@mysql_fetch_array($r,MYSQL_ASSOC);

// Освобождаем память
@mysql_free_result($r);

// Выводим текст
$text = number_format($res["t_hits"],0,","," ");
Imagettftext($im,7, 0, 5, 11, 0xCCCCCC, FONT_TAHOMA, $text);
Imagettftext($im,7, 0, 4, 10, 0x03314A, FONT_TAHOMA, $text);

$text = number_format($res["hits"],0,","," ");
Imagettftext($im,7, 0, 5, 20, 0xCCCCCC, FONT_TAHOMA, $text);
Imagettftext($im,7, 0, 4, 19, 0x04476C, FONT_TAHOMA, $text);

$text = number_format($res["users"],0,","," ");
Imagettftext($im,7, 0, 5, 29, 0xcccccc, FONT_TAHOMA, $text);
Imagettftext($im,7, 0, 4, 28, 0x04876C, FONT_TAHOMA, $text);

// Рассчитываем процентное отношение роботов
if ($res["hits"]!=0)
$text = intval((1-$res["u_hits"]/$res["hits"])*100)."%";
else
$text="0";

// Выводим текст
Imagettftext($im,7, 0, 80-width($text), 12, 0xCCCCCC, FONT_TAHOMA, $text);
Imagettftext($im,7, 0, 79-width($text), 11, 0x03804A, FONT_TAHOMA, $text);
}
}

ImagePng($im);
ImageDestroy($im);
?>


Счетчик №5 - все вместе



Этот большой счетчик является суммой всех предыдущих.


<?
error_reporting(E_ALL & ~E_NOTICE);
include
"config.php";

// Эта функция позволяет определить длину строки в пикселях
function width($text) {
$box=imagettfbbox(7, 0, FONT_TAHOMA, $text);
return(
$box[2]-$box[1]);
}

// Шрифт, который мы используем для вывода счетчика.
// Можно взять из C:WindowsFonts
define('FONT_TAHOMA', 'tahoma.ttf');

// Внимание ! Изображение должно быть True-Color (24 бита)
$im=ImageCreateFromPng("button-big.png");

$CONN=@mysql_connect($STATS_CONF["sqlhost"],
$STATS_CONF["sqluser"],
$STATS_CONFs["sqlpassword"]);

if (
mysql_errno()==0) {
@
mysql_select_db($STATS_CONF["dbname"]);

if (
mysql_errno()==0) {

$r=@mysql_query("SELECT t_hits,t_hosts,t_users,hits,hosts,
users,u_hits FROM cns_counter"
);
$res=@mysql_fetch_array($r,MYSQL_ASSOC);
@
mysql_free_result($r);

$text = number_format($res["t_hits"],0,","," ");
Imagettftext($im,7, 0, 86-width($text), 11, 0xCCCCCC, FONT_TAHOMA, $text);
Imagettftext($im,7, 0, 85-width($text), 10, 0x03314A, FONT_TAHOMA, $text);

$text = number_format($res["hits"],0,","," ");
Imagettftext($im,7, 0, 86-width($text), 20, 0xCCCCCC, FONT_TAHOMA, $text);
Imagettftext($im,7, 0, 85-width($text), 19, 0x0331FF, FONT_TAHOMA, $text);

$text = number_format($res["t_hosts"],0,","," ");
Imagettftext($im,7, 0, 86-width($text), 31, 0xCCCCCC, FONT_TAHOMA, $text);
Imagettftext($im,7, 0, 85-width($text), 30, 0x03314A, FONT_TAHOMA, $text);

$text = number_format($res["hosts"],0,","," ");
Imagettftext($im,7, 0, 86-width($text), 40, 0xCCCCCC, FONT_TAHOMA, $text);
Imagettftext($im,7, 0, 85-width($text), 39, 0x0331FF, FONT_TAHOMA, $text);

$text = number_format($res["t_users"],0,","," ");
Imagettftext($im,7, 0, 86-width($text), 51, 0xCCCCCC, FONT_TAHOMA, $text);
Imagettftext($im,7, 0, 85-width($text), 50, 0x03314A, FONT_TAHOMA, $text);

$text = number_format($res["users"],0,","," ");
Imagettftext($im,7, 0, 86-width($text), 60, 0xCCCCCC, FONT_TAHOMA, $text);
Imagettftext($im,7, 0, 85-width($text), 59, 0x0331FF, FONT_TAHOMA, $text);

$r=mysql_query("SELECT count(DISTINCT hid) as online
FROM cns_log
WHERE date>NOW() - INTERVAL 3 MINUTE;"
);
$text = mysql_result($r,0,0);
Imagettftext($im,7, 0, 86-width($text), 70, 0xCCCCCC, FONT_TAHOMA, $text);
Imagettftext($im,7, 0, 85-width($text), 69, 0xC0314A, FONT_TAHOMA, $text);

$text = sprintf("%.2f%%",(1-$res["u_hits"]/$res["hits"])*100);
Imagettftext($im,7, 0, 86-width($text), 82, 0xCCCCCC, FONT_TAHOMA, $text);
Imagettftext($im,7, 0, 85-width($text), 81, 0x03804A, FONT_TAHOMA, $text);
}
}
ImagePng($im);
ImageDestroy($im);
?>

Категория: php | Добавил: freeone (14.06.2007)
Просмотров: 530 | Комментарии: 2 | Рейтинг: 0.0 |

Всего комментариев: 0
Имя *:
Email *:
Код *:

Copyright Информационные технологии © 2006