Bonjour à tous et à toutes,

Je suis en train de me casser la tête pour faire un script en php qui doit se connecter à un channel irc, pour dialoguer avec une personne et lui demander des informations.

J'arrive, grâce au code ci-dessous, à me connecter au channel et à envoyer un message en privé à la personne sans trop de problème.
Par contre, je n'arrive pas à récupérer le message envoyé en retour.

Voici le code actuel :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
set_time_limit(0);
$socket = fsockopen('irc.worldnet.net','6667');
 
// 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 : ici, je mets un peu n'importe quoi, vu que le serveur ne prend en compte que le premier argument (mais qu'il a besoin de 4 arguments).
fputs($socket,"USER Cyril Cyril Cyril Cyril\r\n");
// On donne le NICK.
fputs($socket,"NICK shepounet2\r\n");
 
$continuer = 1; // On initialise une variable permettant de savoir si on doit continuer la boucle.
while($continuer) // Boucle principale.
{
	$donnees = fgets($socket, 1024); // Le 1024 permet de limiter la quantité de caractères à recevoir du serveur.
	$retour = explode(':',$donnees); // On sépare les différentes données.
	// On regarde si c'est un PING, et, le cas échéant, on envoie notre PONG :
	//print_r($retour);
	if(rtrim($retour[0]) == 'PING')
	{
		fputs($socket,'PONG :'.$retour[1]);
		$continuer = 0;
	}
	 //if($donnees)
		//echo $donnees;
}
 
fputs($socket,"JOIN #nc-irc-challs\r\n"); // On rejoint le canal #quiz-sdz.
if(fputs($socket,"PRIVMSG shepounet salut toi !\r\n")) {
	echo "c'est bon !";
}else{
	echo "c'est pas bon !";
}	
//attente de réponse...
while(1){
        $donnees=fgets($socket, 1024);
        echo "donnees :\n".$donnees;
}
 
?>
L'idée de la boucle while est d'attendre qu'un message arrive...
Et ça ne marche pas ^_^

Est-ce que quelqu'un pourrait m’aiguiller ?

Cordialement,
shepounet