
Антиникотиновый информер

Антиникотиновый информер
Когда я бросил курить, то в качестве стимула сделал себе такой антиникотиновый информер и использую его в подписи на некоторых форумах. Это PHP-скрипт, который считает в реальном времени сколько всего сэкономлено и выводит результат в виде графического файла.
Code (PHP) : Убрать нумерацию
- <?
- //-------------------------------------------------------------
- // Скрипт антиникотинового информера с интервалами дат
- // Copyright (C) ManHunter / PCL
- // http://www.manhunter.ru
- //-------------------------------------------------------------
- // Настройки информера
- $cig_per_day=20; // Сигарет в сутки, шт.
- $rub_per_day=65; // Денег на сигареты в сутки, руб.
- $nikotin=1.2; // Количество никотина в 1 сигарете, мг.
- $d=28; // Месяц, когда бросил курить
- $y=2008; // Год, когда бросил курить
- $m=7; // День, когда бросил курить
- $h=11; // Время, когда бросил курить, часы
- $i=30; // Время, когда бросил курить, минуты
- $size=10; // Размер шрифта информера
- $font="my_font.ttf"; // Файл с TTF-шрифтом
- $border=10; // Отступ текста от границ
- //-------------------------------------------------------------
- // Дальше лучше ничего без надобности не менять
- function num2word($num,$words) {
- $num=$num%100;
- if ($num>19) { $num=$num%10; }
- switch ($num) {
- case 1: { return($words[0]); }
- case 2:
- case 3:
- case 4: { return($words[1]); }
- default: { return($words[2]); }
- }
- }
- $start_date=mktime($h,$i,0,$m,$d,$y);
- $end_date=time();
- $day=intval(($end_date-$start_date)/(24*60*60));
- $hour=intval(($end_date-$start_date-$day*24*60*60)/(60*60));
- $days_array=Array("день", "дня", "дней");
- $hour_array=Array("час", "часа", "часов");
- // Сгенерировать текст информера
- $str="Не курю: ".$day." ".num2word($day,$days_array)." ".
- ($hour==0?"ровно":$hour." ".num2word($hour,$hour_array))."\n".
- "Не выкурено сигарет: ".
- intval(($day+($hour/24))*$cig_per_day)." шт.\n".
- "Не потрачено денег: ".
- intval(($day+($hour/24))*$rub_per_day)." руб.\n".
- "Не убито лошадок: ".
- intval(($day+($hour/24))*$cig_per_day*$nikotin/50)." шт.";
- // Перевести в юникод, чтобы корректно отображались русские буквы
- $str=iconv('windows-1251','utf-8',$str);
- // Получить размер графического блока для вывода текста
- list($ldx,$ldy,$rdx,$rdy,$rux,$ruy,$lux,$luy)=imageTTFBBox($size,0,$font,$str);
- // Получить размер информера
- $xx=$rdx+$border*2+$size;
- $yy=$rdy+$border*2+$size;
- // Создать изображение
- $im=imageCreatetruecolor($xx,$yy);
- // Определить цвета
- $black=imageColorAllocate($im,0,0,0);
- $red=imageColorAllocate($im,255,0,0);
- $white=imageColorAllocate($im,255,255,255);
- // Белый прямоугольник с красной рамкой
- ImageFilledRectangle($im,0,0,$xx,$yy,$red);
- ImageFilledRectangle($im,1,1,($xx-2),($yy-2),$white);
- // Наложить текст на фон
- imagettftext($im,$size,0,$border+5,$border+$size,$black,$font,$str);
- // Вывести картинку в формате PNG
- Header("Content-type: image/png");
- imagePNG($im);
- ?>
Для красоты и удобства вы можете настроить сервер так, чтобы к скрипту можно было обращаться как к обычной картинке. Для этого создайте файл .htaccess следующего содержания и положите его в папку со скриптом. Модуль Apache mod_rewrite должен быть включен.
Code: Убрать нумерацию
- RewriteEngine on
- RewriteRule ^nosmoke.png$ nosmoke.php
Просмотров: 7205 | Комментариев: 11

Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
stream
(11.04.2021 в 20:23):
Просто супер!))) Спасибо!!!

ManHunter
(01.03.2013 в 11:42):
Могу. Баксов за 300

Николай
(01.03.2013 в 09:42):
Здравствуйте, понравилась сама идея, у меня есть сайт на Джумле - Только Хорошие Новости, неплохо было бы разместить на нем подобный счетчик, только чтобы пользователи сами могли каждый для себя его включать, если вы можете такое сделать - стукните в асю 473737041 или в скайп portall.com.ua

sv
(28.08.2012 в 09:46):
спасибо за код, отличная мотивация...а я сделал вот так http://infosv.org/not_smoke

photoprikol.net
(15.03.2012 в 16:31):
Спасибо за код, очень пригодился :)

Игорь
(28.04.2010 в 13:24):
Вот и мне бы пригодился...
Прихватил - пользы для. Благодарствую.
Прихватил - пользы для. Благодарствую.

Алексей
(18.02.2010 в 16:06):
Странно, что таких информеров вообще нет в инете. Только один.
Этот намного интереснее. Только не пойму, т.к. не спец, что с этимскриптом дальше делать-то? Куда его пихать, чтобы было отображение на форуме?)
Этот намного интереснее. Только не пойму, т.к. не спец, что с этимскриптом дальше делать-то? Куда его пихать, чтобы было отображение на форуме?)

fagot
(08.05.2009 в 12:36):
и я :-)уже 620дней
скрипт конечно не делал, а взял готовый тут
http://www.dkg.pp.ru/nosmoke/AfterCall.png
скрипт конечно не делал, а взял готовый тут
http://www.dkg.pp.ru/nosmoke/AfterCall.png

StasShmelev
(02.05.2009 в 14:38):
Браво!!! Отличный скрипт, а применение всегда найдется! Спасибо! А секунды,- не думай о секундах свысока...:)

gosha
(01.05.2009 в 14:56):
Прикольно! Даже знаю, кому подарю!

dubb
(30.04.2009 в 07:18):
а где минуты и секунды ?

Добавить комментарий
Заполните форму для добавления комментария
