PDA

Просмотр полной версии : Antichat UserBar on PHP


NOmeR1
16.07.2007, 02:46
Вчера сделал. Сегодня решил написать коменты и выложить сюда. Ценим. :)
<?

function win2uni($s)
{
$s = convert_cyr_string($s,'w','i');
for ($result='', $i=0; $i<strlen($s); $i++) {
$charcode = ord($s[$i]);
$result .= ($charcode>175)?"&#".(1040+($charcode-176)).";":$s[$i];
}
return $result;
}

//работа в массиве мне удобней :)
$img = array();

$img['WIDTH'] = 350; //ширина юзербара
$img['HEIGHT'] = 20; //высота юзербара
$img['FONT_SIZE'] = 8; //размер шрифта
$img['FONT_NAME'] = 'REFSAN.TTF'; //имя шрифта #1
$img['FONT_NAME_2'] = 'visitor1.ttf'; //имя шрифта #2

$image = imagecreatetruecolor($img['WIDTH'],$img['HEIGHT']) or die();

imagefill($image, 0, 0, 0x2B2F34);

$img['USER'] = '24820'; //ваш ID на форуме

$open = file_get_contents('http://forum.antichat.ru/member.php?u='.$img['USER']);
$open = preg_match('|(.+)&nbsp;\(<b>(\d+)</b>/<b>(\d+)</b>\)|i',$open,$repa);

$img['TEXT'] = win2uni('Репутация: '.$repa[1].' ('.$repa[3].')');

imagerectangle($image, 0, 0, 349, 19, 0x000000);
imagefilledrectangle($image,1,1,348,8,0x2F3439);

imagettftext($image, $img['FONT_SIZE'], 0, 215, 14, 0xB9B9B9, $img['FONT_NAME'], $img['TEXT']);
imagettftext($image, $img['FONT_SIZE'] + 2, 0, 10, 14, 0x228B22, $img['FONT_NAME_2'], 'ANTICHAT.RU');

header('Content-type: image/gif');
imagegif($image);
imagedestroy($image);

?>
Шрифты
[WebFile] (http://webfile.ru/1469940)
[Slil] (http://slil.ru/24635765)
[Dump] (http://dump.ru/files/9/9529272256/)

Его довольно просто подделать под любой другой форум/сайт, что хотите. Самый нормальный бесплатный хостинг под этот скрипт - www.6te.net

P.S. Сильно не ругайте, я не так хорошо освоился в PHP.

Isis
16.07.2007, 02:48
Красиво!
Быстро ты осваиваешь пхп+)

Zitt
16.07.2007, 02:51
боянище...
но идея с репой ничё...

Piflit
16.07.2007, 02:53
NOmeR1
может antichat.ru лучше заменить на ник? так будет лучше выглядеть

Isis
16.07.2007, 02:59
Ошибочка в начале...
Файл шрифта показа репутации неправильно формат его написан...
Необходимо изменить REFSAN.ttf на REFSAN.TTF

GreenBear
16.07.2007, 03:01
но я бы сделал по крону, например раз в час.. так если где на популярном форуме разместишь нах ачат задосишь =\

Isis
16.07.2007, 03:15
GreenBear, не ачат заддосит, а тот сайт где разместит =)

GreenBear
16.07.2007, 03:43
а я что сказал?

Isis
16.07.2007, 04:40
на популярном форуме разместишь нах ачат задосишь =\
...

•••™NO FEAR™•••
16.07.2007, 06:45
Нормально так сделал, интересно :)

Zulf
16.07.2007, 10:05
Молодец, интересно сделал (;

BlackCats
16.07.2007, 10:28
нифигаааа!!! номер!!! это была моя идея, и ты её купиздил! :'( сам хотел замутить дня 4 назад но всёравно +

NOmeR1
16.07.2007, 12:12
NOmeR1
может antichat.ru лучше заменить на ник? так будет лучше выглядеть
Замени, то тогда не будет понятно для какого сайта ЮзерБар.
нифигаааа!!! номер!!! это была моя идея, и ты её купиздил! :'( сам хотел замутить дня 4 назад но всёравно +
хы) быстрее надо было делать. Ну рас уж ты первый придумал, лови +
Ошибочка в начале...
Файл шрифта показа репутации неправильно формат его написан...
Необходимо изменить REFSAN.ttf на REFSAN.TTF
С заглавными не работает


Если бы Егорыч включил приём аватаров в формате PHP, то я бы такой аватар намутил :)

Feshh
16.07.2007, 13:30
Замени, то тогда не будет понятно для какого сайта ЮзерБар.

хы) быстрее надо было делать. Ну рас уж ты первый придумал, лови +

Исправил, спс.


Если бы Егорыч включил приём аватаров в формате PHP, то я бы такой аватар намутил :)

avatarshell.php ? :)

NOmeR1
16.07.2007, 13:33
avatarshell.php ? :)
Нет, не загружать, а указывать ссылку.

Егорыч+++
16.07.2007, 13:37
Данная штука конечно интересна. Но есть одно НО.
По сути эта штука работает как ддос. Каждое обращение к странице на которой такая картинка, будет вызывать еще один конект к форуму. А если, кто нибудь захочит пофлудить, ему будет просто достаточно эту картинку перегружать (тогда естественно будет бан Ip серверу на котором картинка). Поэтому нужно реализовывать кеширование информации и ее обновление не при каждом конекте, а скажем через каждые полчаса.

Zitt
16.07.2007, 13:46
Про что гринбир и говарил =\\

GreenBear
16.07.2007, 13:49
...
обрати внимание на ишь

Zitt
16.07.2007, 14:18
Antichat (14:12:33 16/07/2007)
подписи с сегодняшнего дня отключены
Den (14:13:12 16/07/2007)
навсегда?
Antichat (14:13:49 16/07/2007)
для обычныхх пользователей возможно навсегда.. для пользователей из групп подписи разрешены

Доигрались бля(((((((

GreenBear
16.07.2007, 14:22
http://forum.antichat.ru/thread44545.html - написано же.

и я думаю, что этот бар нужен не для этого форума, зачем дублировать одно и тоже? если ставить, то на других форумах.

NOmeR1
16.07.2007, 15:00
Думаю, GreenBear правильно сказал, что лучше использовать CRON для этого скрипта.

Ещё можно попробовать sleep() но я с ним не работал =\

DIAgen
16.07.2007, 15:44
А лучше использовать Cache, который хорошо реализован в ZendFramework...

Raz0r
16.07.2007, 16:55
Isis, ися перепил чтоли?)
Мишка прав - постоянный рефреш - сакс.

yeti
16.07.2007, 23:00
Ниче.. зато на другом форуме будет оригинальая подпись)) а то у всех будет эта фигня.. во прикол блин =\

NOmeR1
18.07.2007, 14:37
Обновил скрипт, убрал ненужное, исправил неправильное, добавил ещё один "эффект" юзербара - осветление вверху.

NOmeR1
18.07.2007, 16:29
Ещё раз обновил: добавил ещё полосы по всему юзербару, кто хочет, раскоментируйте и юзайте! :)

Spyder
18.07.2007, 16:35
работал с человеком, можно доверять. Статья понравилась, для новичков как раз сойдёт, держи плюс

NOmeR1
18.07.2007, 17:10
Добавил "тень", хотя на самом деле, теже самые буквы, только написаны чёрным цветом и их загораживает слово. Смотрится ярко, красиво, отчётливо.

x-treem
18.07.2007, 17:18
создаешь бд на хосте где лежит скрипт.
в скрипт добавляешь функцию проверки в плане последнего обращения к ачату.
тоесть, перед тем как обратиться и снять инфу, скрипт смотрит базу, если в таблице время последнего обращения больше предположим на пол часа, то можно делать запрос, при этом добавив данное время в базу. надеюсь понятно обьяснил.

Piflit
18.07.2007, 17:43
создаешь бд на хосте где лежит скрипт.
в скрипт добавляешь функцию проверки в плане последнего обращения к ачату.
тоесть, перед тем как обратиться и снять инфу, скрипт смотрит базу, если в таблице время последнего обращения больше предположим на пол часа, то можно делать запрос, при этом добавив данное время в базу. надеюсь понятно обьяснил.

зачем делать базу? можно просто текстовой файлик, куда будет записываться последнее обращение, а потом затираться новым =)

x-treem
18.07.2007, 18:46
как х*й разница? я же не приводил кусок кода. просто предложил идею. а уже как реализовывать, это уже другое дело. кстати файлик, тоже бд :)

glomen
17.06.2008, 00:11
Как переделать этот скрипт под ipb , где в скрипте указываеться строчка для парсинка регуляркой ?

warwar
06.05.2010, 13:39
Перезалейте шрифты! =/
Тема вообще актуальна на данный момент?

Deathdreams
06.05.2010, 16:44
Перезалейте шрифты! =/
Тема вообще актуальна на данный момент?
скрипт писался криво в 2007 году.
лучше перепеши заново, исходник есть.

ReduKToR
08.05.2010, 11:04
<?PHP

function win2uni($s)
{
$s = convert_cyr_string($s,'w','i');
for ($result='', $i=0; $i<strlen($s); $i++) {
$charcode = ord($s[$i]);
$result .= ($charcode>175)?"&#".(1040+($charcode-176)).";":$s[$i];
}
return $result;
}

$img = array();
$img['USER'] = '72566'; //ваш ID на форуме
$img['WIDTH'] = 350; //ширина юзербара
$img['HEIGHT'] = 20; //высота юзербара
$img['FONT_SIZE'] = 8; //размер шрифта
$img['FONT_NAME'] = 'tahoma.ttf';
$img['FONT_NAME_2'] = 'tahoma.ttf';

$image = imagecreatetruecolor($img['WIDTH'],$img['HEIGHT']) or die();

imagefill($image, 0, 0, 0x2B2F34);



$open=file_get_contents('http://antichat-family.ru/member.php?u='.$img['USER'].'');
$open = preg_match('|(.+)&nbsp;\(<b>(\d+)</b>/<b>(\d+)</b>\)|i',$open,$repa);

$img['TEXT'] = win2uni('Репутация: '.$repa[1].' ('.$repa[2].'/'.$repa[3].')');

imagerectangle($image, 0, 0, 349, 19, 0x000000);
imagefilledrectangle($image,1,1,348,8,0x2F3439);

imagettftext($image, $img['FONT_SIZE'], 0, 205, 14, 0xB9B9B9, $img['FONT_NAME'], $img['TEXT']);
imagettftext($image, $img['FONT_SIZE'] + 2, 0, 10, 14, 0x228B22, $img['FONT_NAME_2'], 'ANTICHAT.RU');

header('Content-type: image/gif');
imagegif($image);
imagedestroy($image);

?>
Вот седня посидел минут 10.
Рабочая версия скрипта
Репутация полная отображается через сайт http://antichat-family.ru

BlackSun
08.05.2010, 11:24
Добавьте кэширование, изверги =\

_==wolf==_
08.05.2010, 11:31
ReduKToR, эмм, а зачем через family? ее и с ачата очень легко посмотреть

POS_troi
08.05.2010, 12:17
Кэш однозначно нужен

ReduKToR, эмм, а зачем через family? ее и с ачата очень легко посмотреть

На фэмэли вся репа на одной простыне