โดยเราจะทำการตรวจสอบค่าที่ server irc ส่งมา
<?php $bot = array( //ส่วนนี้คือ server ของ irc ที่เราจะเข้าใช้บริการ server => "irc.thaishadow.com", //port ของ server port => "6667", //ชื่อห้อง channel => "#thdbot", //ชื่อที่ใช้แสดงใจห้อง ident => "Zero_Engine", //username ที่ใช้ใน server irc username => "Zero_Engine", //password ที่ใช้ใน server irc password => "Password-Unknow", //ip address ของ host ที่เราปล่อยบอท hostname => $_SERVER['REMOTE_ADDR'] ); //ให้โปรแกรมทำงานโดยไม่มี time out set_time_limit(0); //ให้โปรแกรมทำงานถึงแม้เราจะปิด Browser ignore_user_abort(0); //ทำการเชื่อมต่อกับ server irc $socket = fsockopen($bot['server'], $bot['port']); //ส่งข้อมูลของเราไปให้ server fputs($socket, "USER ".$bot['ident']." ".$bot['hostname']." ".$bot['username']." :".$bot['username']."\n"); //เปลี่ยนชื่อของเราที่จะใช้แสดง fputs($socket, "NICK ".$bot['ident']."\n"); //ใส่รหัสผ่าน fputs($socket, "NickServ IDENTIFY ".$bot['password']."\n"); //เข้าห้องใน irc fputs($socket, "JOIN ".$bot['channel']."\n"); //ทำการลูปซ้ำไปเรื่อยๆ while(1){ //ทำการ loop เซ็คค่าว่ามีข้อมูลหรือไม่ while($data = fgets($socket,128)){ //ทำการแยกข้อมุลที่ได้รับออกเป็น array โดยข้อมุลที่ได้รับจะมาในรูป "PING รหัสสือสาร" $get = explode(" ",$data); //ตรวจสอบว่าข้อมูลที่ได้รับขึ้นต้นด้วย PING if($get[0] == "PING"){ //ส่งข้อมุลกลับไป server โดยเริ่มต้นด้วย PONG ตามด้วยรหัสที่ได้รับจาก PING fputs($socket,"PONG ".$get[1]."\n"); } } } ?>
//ให้โปรแกรมทำงานโดยไม่มี time out
set_time_limit(0);
//ให้โปรแกรมทำงานถึงแม้เราจะปิด Browser
ignore_user_abort(0);
สองบรรทัดนี้จะทำหน้าที่ที่เซฟเวอร์ที่เราปล่อยบอทไม่ให้โปรแกรมหยุดทำงาน
ส่วนใน while นั้นจะทำการตรวจสอบว่า server irc มีการส่งข้อมูลมาหรือไม่ถ้าได้รับข้อมูล
ก็จะมีการส่งกลับ ทำให้ bot ไม่หลุดออกจาก server irc *O*