Tekil Mesaj gösterimi
Alt 14 Ocak 2008, 01:14   #7
khazadum
Guest
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Yüzdesi:(%)
Cevap: IRC de olan biteni webe yansıtmak?




Kod ceviz.net ten alınmış, tarafımca düzenlenmiştir. (Kodun sahibi HunteR, Ertugrul Yıldırımdır.)

ilk başta baglanti.php'yi vereyim.

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
<?
 
class CN_RssParser
      
{
    
# Genel Tanýmlamalar
      
var $insideitem false// Alt Oge Varmý?
      
var $tag;                // Etýket Adý
      
var $title;              // Oge Baslýgý
      
var $link;               // Oge Linki
      
var $aticdate;           // Oge Tarihi
      
var $author;             // Oge Yazarý

    # Baglantý
      
var $result = array();
      var 
$parser;

    
# Sýnýf Cagrýldýgýnda Calýsacak Method
      
function CN_RssParser()
         {
         
$this->parser xml_parser_create();
         
xml_set_object($this->parser,&$this);
         
xml_set_element_handler($this->parser,"StartElement","EndElement");
         
xml_set_character_data_handler($this->parser,"CharacterData");
         }

    
# Datayý Yorumlar ve Sonucu Dondurur
      
function Parse($data,$feof)
         {
         
# Datayý Yorumla
         
xml_parse($this->parser$data$feof);

         
# Sonucu Dondur
         
return $this->result;
         }

    
# Yený Bý Etýket ýle Karsýlastýgýnda
      
function StartElement($parser$tagname$attrs)
         {
         
# Eger Alt Ogelere Gecýldýyse (title,link, vs..)
         
if ($this->insideitem)
            {
            
$this->tag $tagname;
            }
         
# Yený Ogeye Gecýldýyse (item), Alt Ogeye Gec (title,link, vs..)
         
elseif ($tagname == "ITEM")
            {
            
$this->insideitem true;
            }
         return;
         }

    
# Etýketýn Sonuna Geldýgýnde
      
function EndElement($parser$tagname)
         {
         if (
$tagname == "ITEM")
            {
            
# Sonucu Olustur
            
$result .= trim($this->title)."\n".trim($this->link)."\n";
            if(
$this->author and $this->articdate)
            
$result .= trim($this->author)." ".trim($this->articdate)."\n";
            
$result .= "\n ";

            
# Degerlerý Sýfýrla
            
$this->title "";
            
$this->link "";
            
$this->articdate "";
            
$this->author "";
            
$this->insideitem false;

            
# Olusan sonucu $result dýzýsýne yený býr eleman olarak at
            
$this->result[] = $result;
            }
         return;
         }

    
# Etýketýn Icerýgýný Yorumlamak Icýn
      
function CharacterData($parser$data)
         {
         
# Eger Alt Ogeye Gecýldýyse
         
if ($this->insideitem)
            {
            
# Alt Oge Adýna Gore Degerlý Ata
            
switch ($this->tag)
               {
               case 
"TITLE":     $this->title .= $data;     break;
               case 
"LINK":      $this->link .= $data;      break;
               case 
"ARTICDATE"$this->articdate .= $data; break;
               case 
"YAZAR":     $this->author .= $data;    break;
               }
            }
         return;
         }


    
# Islemý Tamam.. Bellegý Bosalt
      
function Close()
         {
         
xml_parser_free($this->parser);
         return;
         }
      }
?>

sonra da php kodumuzu;

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
<?
  
include("baglanti.php");
  class 
PHPbot
      

      var 
$localhost
      var 
$host;
      var 
$port;       
      var 
$timeout;    
      var 
$kanal;    
      var 
$nick;       
      var 
$closecode;  
      var 
$logfile;    
      var 
$server;
      var 
$log;

     function 
PHPbot()
         {
         
define(n"\n");
         
$this -> localhost  'adsluser-2866.adsl.ttnet.net.tr';
         
$this -> host 'irc.hebele.com'//*Sunucu Adresiniz.
         
$this -> port       6667;
         
$this -> timeout    0;
         
$this -> kanal      'kanal adi'//*Botun girecegi kanal "#" karakterini kullanmayin.
         
$this -> nick       'PHPBot';
         
$this -> closecode  'kapanma sifresi';
         
$this -> logfile    'log.txt';
         }

      function 
Connect()
         {
         
set_time_limit ($this->timeout);
         
$this -> server fsockopen ($this -> host$this -> port$hatano$hatastr$this -> timeout) or
                         die(
'Sunucuya Baðlanamadý');
        
$this -> log    fopen ($this -> logfile'w+') or
                         die(
'Dosya Yaratýlamadý');

         
fputs($this->server'NICK '.$this->nick.n);
         
fputs($this->server'USER '.$this->nick.' '.$this->localhost.' '.$this->remotehost.' :'.$this->nick.n);
         
fputs($this->server'JOIN #'.$this->channel.n);
         
fputs($this->server'PRIVMSG #'.$this->channel.' :Phpbot aktiftir.'.n);
         return;
         }

      function 
Disconnect()
         {
         
fclose($this->server);
         
fclose($this->log);
         exit;
         return;
         }
      function 
PrivMsg($nick,$cmd,$arg)
         {
         if(
$cmd[1] == '#'.$this->channel)
         
fputs($this->log'<'.date("H:i").' '.$nick.'> '.$arg.n);
         if(
preg_match("'\!(.*?)'U",$arg,$set))
            {
            switch(
$set[1])
               {
               case 
$this->closecode$this->Disconnect();            break; // Kapan (Calýsmayý Durdur)
                 
}
            }

         return;
         }

      function 
Run()
         {
         
$this->Connect();

         while (!
feof($this->server))
            {
            
$data fgets ($this->server,1024);

            if(
preg_match("'PING(.*?)'si"$data$set))
            
fputs($this->server,'PONG '.trim($set[1]).n);

            if(
preg_match("':(.*?)!([^\s]*?)\s(.*?)\s:(.*?)'U"$data$set))
               {
               
$nick trim($set[1]);
               
$host trim($set[2]);
               
$cmd explode(" ",trim($set[3]));
               
$arg trim($set[4]);

               switch(
$cmd[0])
                  {
                  case 
"PRIVMSG"$this->PrivMsg($nick,$cmd,$arg); break; // Mesaj Gonderýldýgýnde
                  
case "PART":  break; // Tamamlanmadý..
                  
case "JOIN":  break; // Tamamlanmadý..
                  
case "NICK":  break; // Tamamlanmadý..
                  
case "QUIT":  break; // Tamamlanmadý..
                  
}

               }
            }
         }
      }

 
$PHPbot = new PHPbot();
 
$PHPbot->Run();
?>


 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları eglen sohbet reklamver