Мини-информер 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($image000x2B2F34); 

    $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($image004004000x000000); 
    imagefilledrectangle($image,1,1,400,400,0x2F3439); 
    ImageCopy ($image$bbb1010000$width,$height);
    imagettftext($image$img['FONT_SIZE'],     010900xB9B9B9$img['FONT_NAME'], $img['TEXT4']);
    imagettftext($image$img['FONT_SIZE'],     010700xB9B9B9$img['FONT_NAME'], $img['TEXT3']); 
    imagettftext($image$img['FONT_SIZE'],     010500xB9B9B9$img['FONT_NAME'], $img['TEXT2']); 
    imagettftext($image$img['FONT_SIZE'],     010300xB9B9B9$img['FONT_NAME'], $img['TEXT']); 
    imagettftext($image$img['FONT_SIZE'] + 4020100x228B22$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