Ceci est le code de connexion de base pour un petit robot PHP IRC. Le problème est qu'il semble que la boucle while() ne progresse pas au-delà de fgets() jusqu'à ce qu'elle reçoive des données du serveur IRC. Je veux que la boucle while() se répète, même si le serveur IRC n'a pas encore envoyé de données. Est-ce possible?Comment une boucle while() peut-elle rester bloquée lors de l'utilisation de fsockopen() et de fgets() en PHP?
$socket = fsockopen($config['irc_server'], $config['port']);
while (1)
{
$data = fgets($socket, 128);
echo '[RECEIVE] ' . $data;
$recv = explode(' ', $data);
if ($recv[0] == 'PING')
{
send('PONG', $recv[1]);
}
}
Pensez "non-bloquant" –