• Страница 1 из 1
  • 1
Модератор форума: No_MaTTeR, Dimitro, LightInDarkness  
Cоздание счетчика на PHP
Алигофрен
Скаут
Quote
Практически на каждом сайте можно увидеть счетчики. На немного навороченных сайтах даже существуют специальные счетчики для каждой страницы с логотипом сайта. Могут встретиться счетчики, регистрирующие количество заходов на сайт, счётчики лиц, помещенных в бан-лист и пр. Я расскажу в этой статье, как написать не слишком навороченный счетчик. Все, что для этого может понадобиться - PHP, библиотека для работы с изображениями (обычно поставляется с php), рисунок счетчика и один файл под данные.

Для начала, нам нужно подумать, как счетчик будет действовать. На мой взгляд, самый простой вариант (он же наилучший) - добавлять данные по IP адресам в файл в байтовом виде, а потом выводить счётчик на экран. Вот простой примерчик с комментариями:


Quote
Наверное, многие заметили, что я не стал использовать для подсчета общего количества посещений функцию Count($data), а заново открывал файл (конечно, есть и более элегантные способы - но это ведь всего лишь простенький пример). Все дело в том, что PHP 4 автоматом выполняет функцию Array_Unique (ее можно даже не писать там), а так как после каждой записи ставится перенос строки, то самый надежный путь - подсчитать эти переносы. В этом примере есть и еще один недостаток - может получиться так, что один из байтов в записи IP будет равен 10, т. е. переносу строки.

Протестировав, мы увидим, что файл с данными все равно раздувается до невероятных размеров. А что, если вместо фиксирования каждого посещения, мы будем записывать данные о посещении с этого IP-адреса в отдельные 4 байта - ведь в результате уменьшится размер. К тому же вряд ли кто-то сможет посетить один сайт более 4 миллиардов раз. Улучшим наш пример:



Quote
Это, на мой взгляд - идеальный пример. Здесь можно определять количество посещений по IP-адресам (причем они записываются в импровизированную базу данных, которая размером получается меньше, чем используя уже существующие форматы без сжатия) и переводить значение из байтовой формы в числовую (DWORD) - это может пригодиться не только при написании счетчиков. Теоретически максимальный размер этой базы может быть равен 34359738360 байт (~ 32 гигабайт) - если страница будет посещена со всех возможных по записи IP-адресов. Практически размер такого файла обычно не превышает нескольких десятков килобайт (да и то, если сайт раскрученный). Этот пример можно еще улучшать и улучшать - например, уменьшить размер файла за счет удаления нулей: если вы посмотрите на файл с данными, то вы можете увидеть практически везде нулевые байты. Конечно, данные по IP-адресам мы никак оптимизировать не будем - это просто невозможно сделать без помощи архиватора, и то размер может получиться больше. Для оптимизации данных по посещениям нам нужно будет после записи IP-адреса добавить 1 байт, указывающий на размер записи о посещении:

Аффтор:)
Сообщение # 1 отредактировано Алигофрен - Среда, 23.11.2011, 18:34
berk[u]t
๑۩۩๑ Funy krab ๑۩۩๑
а не подскажешь счетчик, за просмотры которого платят деньги? Просто видел где-то тему, но сейчас её нет:(
Сообщение # 2 написано 23.11.2011 в 18:17
Алигофрен
Скаут
Quote (berk|u|t)
счетчик, за просмотры которого платят деньги

первый раз слышу. blink
Сообщение # 3 написано 23.11.2011 в 18:22
m3tal1k
V.I.P. Пользователи
berk[u]t,
Сообщение # 4 написано 23.11.2011 в 18:25
Зазор
Избранный всея форум
Алигофрен, metalik32, Есть такие счетчики,платят за показы,traffbiz.ru пример(не реклама)суть того что идет фрейм трафик,и вирусы в том же числе..

(0)__(0)
Сообщение # 5 написано 23.11.2011 в 18:30
Алигофрен
Скаут
Зазор, понятно no
Сообщение # 6 написано 23.11.2011 в 18:32
m3tal1k
V.I.P. Пользователи
Зазор, спасибо, капитан. biggrin
там система своя, большая часть форума занимались раньше "накруткой" )
Сообщение # 7 написано 23.11.2011 в 18:33
Зазор
Избранный всея форум
metalik32, Я до сих пор занимаюсь=З

(0)__(0)
Сообщение # 8 написано 23.11.2011 в 18:38
Facepalm
Капрал
Quote (Алигофрен)
счетчик, за просмотры которого платят деньги

Это партнерка трафбиза
Сообщение # 9 написано 23.11.2011 в 18:42
Зазор
Избранный всея форум
Facepalm, respect

(0)__(0)
Сообщение # 10 написано 23.11.2011 в 18:43
Facepalm
Капрал
Зазор, Опоздал немного biggrin biggrin biggrin
Сообщение # 11 отредактировано Facepalm - Среда, 23.11.2011, 19:06
VladBoss
Скаут
Проще установить счетчик LI

Сообщение # 12 написано 23.11.2011 в 19:03
berk[u]t
๑۩۩๑ Funy krab ๑۩۩๑
спс)
Сообщение # 13 написано 23.11.2011 в 19:11
  • Страница 1 из 1
  • 1
Поиск: