Мини-информер Antichat

Discussion in 'PHP' started by -Hormold-, 11 Apr 2008.

  1. -Hormold-

    -Hormold- Кто, если не ты?

    Joined:
    29 Sep 2007
    Messages:
    418
    Likes Received:
    290
    Reputations:
    44
    Вот на днях освоил gd2...
    За основу взял userbar от Nomer1.
    Переписал и вот вроде неплохо =)
    Функции:
    Репутация,кол-во сообщений, дата реги и аватарка(jpg или gif).
    Установка:
    Скопировать шрифты из архива в папку со скриптом.
    Создайте файлы ava.jpg и ava.gif с chmod 777

    Скрипт работает по id(index.php?id=123456).
    ID - это ваш номер на античате.
    Шрифты сохранить в туже папку.

    Новая версия(С кешом)-http://webfile.ru/1866444
    Старая версия:
    PHP:
    <?
    $img = array(); 

    $img['WIDTH']       = 120;
    $img['HEIGHT']      = 210;
    $img['FONT_SIZE']   = 8;
    $img['FONT_NAME']   = 'REFSAN.TTF';
    $img['FONT_NAME_2'] = 'visitor1.ttf';
    $img['USER']=$_GET['id'];

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

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

    $op = file_get_contents('/member.php?u='.$img['USER']); 
    $open = preg_match('|(.+)&nbsp;\(<b>(\d+)</b>/<b>(\d+)</b>\)|i',$op,$repa);
    //
    list($bi,$bis)=explode("Регистрация: <strong>",$op);
    list(
    $at,$bii)=explode("</strong>",$bis);
    $at=str_replace("2008","08",$at);
    $at=str_replace("2007","07",$at);
    $at=str_replace("2006","06",$at);
    $at=str_replace("2005","05",$at);
    $at=str_replace("2004","04",$at);
    $at=str_replace("2003","03",$at);
    //
    list($null,$nuzno)=explode("Всего сообщений: <strong>",$op);
    list(
    $yes,$no)=explode("</strong>",$nuzno);
    //
    list($null,$nns)=explode("Просмотр профиля: ",$op);
    list(
    $nick,$null)=explode("</title>",$nns);
    //
    $avatar=file_get_contents("/image.php?u=".$img['USER']);
    fwrite(fopen("ava.gif","w"),$avatar);
    $size=getimagesize("ava.gif");

    if(
    $size['mime']=="image/jpeg"){
    fwrite(fopen("ava.jpg","w"),$avatar);
    $bbb = imagecreatefromjpeg( "ava.jpg" );
    list(
    $width, $height) = getimagesize("ava.jpg");
    }else{
    fwrite(fopen("ava.gif","w"),$avatar);
    $bbb = ImageCreateFromGIF ( "ava.gif" );
    list(
    $width, $height) = getimagesize("ava.gif");
    }


    $img['TEXT'] = win2uni($nick); 
    $img['TEXT2']= win2uni($repa[1].'('.$repa[2].'/'.$repa[3].')');
    $img['TEXT3']= win2uni('Message:'.$yes);
    $img['TEXT4']= win2uni('Reg at:'.$at);


    imagerectangle($image, 0, 0, 400, 400, 0x000000); 
    imagefilledrectangle($image,1,1,400,400,0x2F3439); 
    ImageCopy ($image, $bbb, 10, 100, 0, 0, $width,$height);
    imagettftext($image, $img['FONT_SIZE'],     0, 10, 90, 0xB9B9B9, $img['FONT_NAME'], $img['TEXT4']);
    imagettftext($image, $img['FONT_SIZE'],     0, 10, 70, 0xB9B9B9, $img['FONT_NAME'], $img['TEXT3']); 
    imagettftext($image, $img['FONT_SIZE'],     0, 10, 50, 0xB9B9B9, $img['FONT_NAME'], $img['TEXT2']); 
    imagettftext($image, $img['FONT_SIZE'],     0, 10, 30, 0xB9B9B9, $img['FONT_NAME'], $img['TEXT']); 
    imagettftext($image, $img['FONT_SIZE'] + 4, 0, 20, 10, 0x228B22, $img['FONT_NAME_2'], 'ANTICHAT'); 
    header('Content-type: image/gif'); 
    imagegif($image); 
    imagedestroy($image); 


    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; 
    }

    ?>
    P.S. list($null,$nuzno) - у меня к вечеру мозги плохо работают =\
     
    #1 -Hormold-, 11 Apr 2008
    Last edited: 11 Apr 2008
    4 people like this.
  2. -Hormold-

    -Hormold- Кто, если не ты?

    Joined:
    29 Sep 2007
    Messages:
    418
    Likes Received:
    290
    Reputations:
    44
    Вот шрифты.
    http://dump.ru/files/9/9529272256/
    Кто может перезалейте... Они там давно.
     
  3. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    Готовый вариант покажите
     
  4. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    PHP:
    <?php
    $at
    =str_replace("2008","08",$at);
    $at=str_replace("2007","07",$at);
    $at=str_replace("2006","06",$at);
    $at=str_replace("2005","05",$at);
    $at=str_replace("2004","04",$at);
    $at=str_replace("2003","03",$at); 
    ?>
    It can make better use of this code?

    PHP:
    <?php
    $at
    =substr($at, -2);
    ?>
     
  5. -Hormold-

    -Hormold- Кто, если не ты?

    Joined:
    29 Sep 2007
    Messages:
    418
    Likes Received:
    290
    Reputations:
    44
    [​IMG]
    Примерно так работает...
     
    1 person likes this.
  6. Егорыч+++

    Staff Member

    Joined:
    27 May 2002
    Messages:
    1,373
    Likes Received:
    894
    Reputations:
    20
    любой информер должен поддерживать кеширование, иначе будет забанен по ip
     
  7. -Hormold-

    -Hormold- Кто, если не ты?

    Joined:
    29 Sep 2007
    Messages:
    418
    Likes Received:
    290
    Reputations:
    44
    сделаю, спасибо =)
     
  8. -Hormold-

    -Hormold- Кто, если не ты?

    Joined:
    29 Sep 2007
    Messages:
    418
    Likes Received:
    290
    Reputations:
    44
    спасибо scrat что помог с кэшированием =)
    Качаем от сюда: http://webfile.ru/1866444

    P.S. Тут всё есть(+Шрифты)
     
    #8 -Hormold-, 11 Apr 2008
    Last edited: 11 Apr 2008
  9. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    Там вообще есть функция fclose?
    Странно, fopen, fwrite есть, а fclose нету. %(
     
    1 person likes this.
  10. SeGaLWS

    SeGaLWS Elder - Старейшина

    Joined:
    13 Jan 2008
    Messages:
    38
    Likes Received:
    8
    Reputations:
    0
    ты бы хоть код глянул..... с substr можно так
    PHP:
    $at1=substr($at, -10,8);
    $at2=substr($at, -2);
    $at=$at1.$at2;
    ну или
    1 строкой
    PHP:
    $at=substr_replace($at, '', 6,2); 
    если честоно не знаю можно ли сделать или нет, но все же. Сделай что бы делалась анимированая аватарка, и какое нить сообщение выводилось если не задан или не верный id прямо в информире

    PS: на всяк случай перезалил на рапидшару, а то еле скачал
    http://rapidshare.com/files/106844274/index.rar
     
    #10 SeGaLWS, 12 Apr 2008
    Last edited: 12 Apr 2008