Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- set_time_limit(0); // Temps de connexion illimité
- global $socket; // La variable est globale
- $socket = fsockopen('irc.worldnet.net','6667'); // Définition du serveur et du port
- // Vérification de la bonne connexion :
- if(!$socket) // Si on n'a pas réussi, on affiche un message d'erreur et on quitte.
- {
- echo 'Impossible de se connecter';
- exit;
- }
- // On renseigne l'USER : le serveur a besoin de 4 arguments.
- fputs($socket,"USER BotPHP BotPHP BotPHP BotPHP\r\n");
- // On donne le NICK :
- fputs($socket,"NICK BotHP\r\n");
- // On donne le PASS :
- fputs($socket,"PASS password\r\n");
- stream_set_timeout($socket, 0);
- $continuer = 1;
- while($continuer) // Boucle de connexion au serveur.
- {
- $donnees = fgets($socket, 1024);
- $retour = explode(':',$donnees);
- if(rtrim($retour[0]) == 'PING')
- fputs($socket,'PONG :'.$retour[1]);
- if($donnees)
- echo $donnees;
- if(preg_match('#:(.+):End Of /MOTD Command.#i',$donnees))
- $continuer = 0;
- }
- // Canaux :
- fputs($socket,"JOIN #chan\r\n"); // On rejoint le canal #chan.
- fputs($socket,"JOIN #chan-private password\r\n"); // On rejoint le canal #chan-private avec le pass de chan
- global $quizz;
- $quizz = false; // Valeur d'existence de question pour le quizz, si true une question est en cours
- $co = 1; // Valeur de connexion pour la boucle infinie, si = 0, on se déconnecte du serveur;
- while($co) // Boucle infinie de connexion
- {
- $donnees = fgets($socket,1024); // On lit les données du serveur.
- if($donnees) // Si le serveur nous a envoyé quelque chose.
- {
- echo $donnees;
- $commande = explode(' ',$donnees); // Sépare toutes les réponses espacées du serveur, $commande[0] est la chaine AVANT le 1er espace
- $message = explode(':',$donnees); // Sépare toutes les réponses "double-pointées" du serveur, $message[0] est la chaine AVANT le 1er ':'
- $pseudo = explode('!',$donnees); // Sépare toutes les réponses "exclamées" du serveur, $pseudo est la chaine AVANT le 1er '!'
- $nick = trim($pseudo[0],":"); // Supprime ':' de la chaine pseudo[0]
- $event = $commande[1];
- $chan = $commande[2];
- if($commande[0] == 'PING') // Si c'est un PING, on renvoie un PONG.
- {
- fputs($socket,"PONG ".$commande[1]."\r\n");
- }
- if($event == 'PRIVMSG') // Si c'est un message.
- {
- if($message[2][0] == '!') // Si c'est une commande.
- {
- if(trim($message[2]) == '!exit')
- {
- $co = 0;
- }
- }
- }
- }
- usleep(100);
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement