<? 
/** 
 * Chat PHP 
 * 
 * Thiss Class in a example of a Server create using class pserver 
 * 
 * @package pserver 
 * @subpackage pserver.example 
 * @author Pedro Vargas ([email protected]) http://deerme.org 
 * @version 0.2 
 * @licence GNU Free Documentation License (FDL) 
 */ 
require('pserver.class.php');  
 
  
class chat extends pserver 
{ 
    //Deactivate the automatic writing 
    var $auto_write = false;     
 
    /** 
    * Function responsible for managing the customer in read 
    * In this example reads and writes in an array 
    */ 
    function read($client) 
    { 
        // Read Data 
        $this->data[ $client['n'] ] = trim(@socket_read($client['socket'], $this->bufferin, (  $this->socketbinary ?  PHP_BINARY_READ : PHP_NORMAL_READ  ) )); 
        if ( $this->data[ $client['n'] ] != "" ) 
        { 
            if ( $this->data[ $client['n'] ] == ":clock" ) 
            { 
                $this->write(  $client , $this->_colorshell(33,"[SERVER] says : ").$this->_colorshell(37,  date("Y-m-d H:i:s")  )."\n\r"  ); 
            } 
            elseif( $this->data[ $client['n'] ] == ":w" ) 
            { 
                $this->write(  $client , $this->_colorshell(33,"[SERVER] says : ").$this->_colorshell(37,   str_replace( array("\n") , array("\n\r")  ,  print_r($this->clients,1) )   )."\n\r"  ); 
            } 
            elseif( $this->data[ $client['n'] ] == ":quit" ) 
            { 
                $this->client_broadcast( $this->_colorshell(33,"[SERVER] says : ").$this->_colorshell(37,  "Client ".$client["ip"]." disconnect at ".date("Y-m-d H:i:s")." "   )."\n\r"  ); 
                $this->client_close( $client ); 
                 
            } 
            elseif( $this->data[ $client['n'] ] == ":clear" ) 
            { 
                for( $i=0;$i<=100;$i++ ) 
                { 
                    $this->write(  $client , $this->_colorshell(33,"[SERVER] says : ").$this->_colorshell(37,  "Clear ... "    )."\n\r"  ); 
                } 
            } 
            elseif( $this->data[ $client['n'] ] == ":funny" ) 
            { 
                $xhtml = @file_get_contents("http://www.chistes.com/ChisteAlAzar.asp"); 
                if ( preg_match('|\<div class\=\"chiste\"\>(.*?)\<\/div\>|is', $xhtml , $cap ) ) 
                { 
                    $this->client_broadcast( $this->_colorshell(33,"[SERVER] says : ").$this->_colorshell(37, utf8_decode(strip_tags($cap[1]))  )."\n\r"  ); 
                } 
            }             
            else 
            { 
                foreach( $this->clients as $k => $v ) 
                { 
                    $this->write(  $this->clients[$k] , $this->_colorshell(32,"[".$client["ip"]."] says : ").$this->_colorshell(37, $this->data[ $client['n'] ] )."\n\r"  ); 
                } 
            } 
        } 
         
         
    }     
} 
 
/* 
    This chat allows communication between all users connected, besides a couple of functions implemented in the chat (:w :quit :clock :funny) 
*/ 
$server = new chat('0','6667'); 
$server->welcome_data = $server->_colorshell(32,"Welcome to the Chat \n\r").$server->_colorshell(37,''); 
$server->start(); 
 
?> 
 
 |