Php -> Irc

d-c

Grünschnabel
Kennt einer ein gutes Tutorial, wie man mit PHP eine Verbindung zu einem IRC Server herstellen kann, und aus irgendeinem Channel Infos auslesen kann?Also sowass, wie die Accessliste oder so.


Danke im Vorraus
 

Beitrag, wegen "volle Kanone daneben" entfernt

Er wollte bestimmte Werte aus einem Channel auslesen mit PHP und keinen Java basierten Webchat.
 
Ich habe vor langer Zeit mal auf einer Clanhomepage IRC-Stats erspäht und wollte das auch unbedingt bei meinem 2on2 Clan in Seite integrieren. Hab ich also mal nett angeschrieben und zwei Funktionen erhalten :)

PHP:
<?php

 function chanpeak($chan) {
   if (!$fp = fsockopen("irc.quakenet.org",6667)) return "no connect";
   fputs($fp,"NICK a".substr(md5(uniqid(rand(),1)),0,8)."\r\nUSER botle 00:botle rox\r\n");
   while (!feof($fp)) {
     $data = trim(fgets($fp,1024));
     if (substr($data,0,1) == ":") {
       $dSplit = explode(" ",substr($data,1));
       if (!ereg("!",$dSplit[0]))
         switch ($dSplit[1]) {
           case "322": $chanpeak = $dSplit[4]; if ($dSplit[3] == $chan)
fputs($fp,"QUIT\r\n"); break;
           case "001": fputs($fp,"LIST ".$chan."\r\n"); break;
         }
     } elseif (substr($data,0,4) == "PING") fputs($fp,"PONG".substr($data,5)."\r\n");
   }
   fclose($fp);
   return $chanpeak;
 }

  // Hier channel eintragen, der abgefragt werden soll
  $chan = "#ffq";

  $fp = fopen("chanpeak.dat","r");
  if ($fp) {
    unset($return);
    while (!feof($fp))
      $return.= fgets($fp,4096);
    fclose($fp);
    list($timestamp,$chanpeak) = explode(",",trim($return));
    if ((time()-$timestamp)>600) {
      $chanpeak = chanpeak($chan);
      $fp = fopen("chanpeak.dat","w");
      if ($fp)
        fputs($fp,time().",".$chanpeak);
      fclose($fp);
    }
    echo $chanpeak;
  } else {
    echo "n/a";
  }
?>
 
Zuletzt bearbeitet:
Zurück