Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/04/2013, 17:31
Avatar de bragolsul
bragolsul
 
Fecha de Ingreso: julio-2011
Mensajes: 3
Antigüedad: 13 años, 3 meses
Puntos: 0
Actualización de código PHP antiguo (pocas líneas)

Hola, hace tiempo tengo la idea de poder poner en mi web un listado de la gente que está conectada a mi canal de IRC. Como una vista previa de los usuarios conectados.

Buscando en la web encontré un código hecho por Vlan7, que data de 2006 y que según dice, hace lo que quiero. Como no me funciona, antes de admitir que es culpa mía, prefiero echarle la culpa al código y por tanto, consultarles si el mismo está acorde a los tiempos que corren, ya que lo estoy probando en un server con PHP 5.3.4 y no me da ni pelota (bah, me dice que la constante salir no está definida).
¿Es mucha molestia si le hechan un vistazo?

Código PHP:
Ver original
  1. <?php
  2. // botbc 2.0 Por vlan7
  3. // http://www.vlan7.org
  4.  
  5. $servidor = 'dune.irc-hispano.org';
  6. $puerto = 6667;
  7. $nick = 'botbc';
  8. $host = 'www.vlan7.org';
  9. $canal='#canal';
  10.  
  11. $con = array();
  12.  
  13. $con['socket'] = fsockopen($servidor, $puerto);
  14.  
  15. if (!$con['socket']) {
  16.   print ("No se ha podido conectar con $servidor en el puerto $puerto");
  17. } else {
  18.   fputs($con['socket'], "USER $nick $host $host ".$nick."\n\r");
  19.   fputs($con['socket'], "NICK $nick ".$host."\n\r");
  20.  
  21.   $salir=false;
  22.   $eof=false;
  23.   while ((!$eof) && (!$salir)) {
  24.   $con['buffer']['linea'] = trim(fgets($con['socket'], 1024));
  25.  
  26.   if(substr($con['buffer']['linea'], strpos($con['buffer']['linea'], 'End of /WHO list'))=='End of /WHO list') {
  27.     fclose($con['socket']);
  28.     $salir=true;
  29.   }
  30.  
  31.   if(substr($con['buffer']['linea'], 0, strlen($servidor)+5) == ':'.$servidor.' 352') {
  32.     $nicks = explode(" ", $con['buffer']['linea']);
  33.     print "$nicks[7] ";
  34.   }
  35.  
  36.   if(substr($con['buffer']['linea'], 0, 6) == 'PING :') {
  37.     fputs($con['socket'], "PONG :".substr($con['buffer']['linea'],6)."\n\r");
  38.     fputs($con['socket'], "WHO ". $canal ."\n\r");
  39.   }
  40.   if(!salir) {
  41.     $eof=feof($con['socket']);
  42.   }
  43. }
  44. }
  45. ?>