Advertisement
Guest User

Untitled

a guest
Jul 6th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.42 KB | None | 0 0
  1. <?php
  2. set_time_limit(0); // Temps de connexion illimité
  3.  
  4. global $socket; // La variable est globale
  5. $socket = fsockopen('irc.worldnet.net','6667'); // Définition du serveur et du port
  6.  
  7. // Vérification de la bonne connexion :
  8. if(!$socket) // Si on n'a pas réussi, on affiche un message d'erreur et on quitte.
  9. {
  10.     echo 'Impossible de se connecter';
  11.     exit;
  12. }
  13.  
  14. // On renseigne l'USER : le serveur a besoin de 4 arguments.
  15. fputs($socket,"USER BotPHP BotPHP BotPHP BotPHP\r\n");
  16. // On donne le NICK :
  17. fputs($socket,"NICK BotHP\r\n");
  18. // On donne le PASS :
  19. fputs($socket,"PASS password\r\n");
  20.  
  21. stream_set_timeout($socket, 0);
  22.  
  23.  $continuer = 1;
  24.  
  25. while($continuer) // Boucle de connexion au serveur.
  26. {
  27.  
  28.     $donnees = fgets($socket, 1024);
  29.     $retour = explode(':',$donnees);
  30.     if(rtrim($retour[0]) == 'PING')
  31.         fputs($socket,'PONG :'.$retour[1]);
  32.      if($donnees)
  33.         echo $donnees;
  34.  
  35.     if(preg_match('#:(.+):End Of /MOTD Command.#i',$donnees))
  36.         $continuer = 0;
  37. }
  38.  
  39. // Canaux :
  40. fputs($socket,"JOIN #chan\r\n"); // On rejoint le canal #chan.
  41. fputs($socket,"JOIN #chan-private password\r\n"); // On rejoint le canal #chan-private avec le pass de chan
  42.  
  43. global $quizz;
  44. $quizz = false;  // Valeur d'existence de question pour le quizz, si true une question est en cours
  45. $co = 1; // Valeur de connexion pour la boucle infinie, si = 0, on se déconnecte du serveur;
  46.  
  47. while($co) // Boucle infinie de connexion
  48. {
  49.     $donnees = fgets($socket,1024); // On lit les données du serveur.
  50.     if($donnees) // Si le serveur nous a envoyé quelque chose.
  51.     {
  52.         echo $donnees;
  53.         $commande = explode(' ',$donnees); // Sépare toutes les réponses espacées du serveur, $commande[0] est la chaine AVANT le 1er espace
  54.         $message = explode(':',$donnees); // Sépare toutes les réponses "double-pointées" du serveur, $message[0] est la chaine AVANT le 1er ':'
  55.         $pseudo = explode('!',$donnees); // Sépare toutes les réponses "exclamées" du serveur, $pseudo est la chaine AVANT le 1er '!'
  56.         $nick = trim($pseudo[0],":"); // Supprime ':' de la chaine pseudo[0]
  57.         $event = $commande[1];
  58.         $chan = $commande[2];
  59.         if($commande[0] == 'PING') // Si c'est un PING, on renvoie un PONG.
  60.         {
  61.             fputs($socket,"PONG ".$commande[1]."\r\n");
  62.         }
  63.         if($event == 'PRIVMSG') // Si c'est un message.
  64.         {
  65.             if($message[2][0] == '!') // Si c'est une commande.
  66.             {
  67.                 if(trim($message[2]) == '!exit')
  68.                 {
  69.                     $co = 0;
  70.                 }
  71.             }
  72.         }
  73.     }
  74.     usleep(100);
  75. }
  76. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement