IRCの部屋に在席してる人を取得してくる

PEARのライブラリの使い方がいまひとつ解らなかったので自分で書いてみた。

<?php

  $host = '192.168.100.10';
  $port = 6667;

  $irc = new irc();
  $irc->connect($host,$port);
  $irc->login('test_bot');
  $irc->read();
  $irc->send('names #testroom');
  $buffer = $irc->read();

  $row = split("\n",$buffer);
  $members = preg_replace("@^:(.*):(.*)$@",'$2',$row[0]);

  echo "<html><body><h1>IRC Login User</h1><pre>";
  foreach(split(" ",$members) as $name){
    echo $name ."\n";
  }
  echo "</pre></body></html>";

  class irc {
    function connect($host,$port,$timeout=30){
      $this->sock = fsockopen($host,$port,$errno,$errstr,$timeout);
      if (!$this->sock) echo "{$errstr} ({$errno})";
    }
    function send($cmd){
      $cmd .= "\n";
      fwrite($this->sock, $cmd);
    }
    function login($nickname, $username='user', $password = "", $realname='bot', $hostname='hoge', $servername='hoge'){
      $this->send(sprintf("USER %s %s %s %s",$username, $hostname, $servername, $realname));
      $this->send("NICK " . $nickname);
    }
    function read(){
      return fread($this->sock,4096);
    }
  }