我将此代码放在文件bot.php
中,该文件打开并保持实时IRC连接:
<?php
// Prevent PHP from stopping the script after 30 seconds
set_time_limit(0);
// Open socket
$irc = fsockopen("localhost", 6667);
// Send AUTH
fputs($irc,"USER PHPServ PHPServ PHPServ :PHPServ\n");
fputs($irc,"NICK PHPServ\n");
// Wait, OPER and JOIN channel
sleep(5);
fputs($irc,"OPER PHPServ :password\n");
fputs($irc,"JOIN #channel\n");
// Force an endless while
while(1) {
// Continue
while($data = fgets($irc, 128)) {
echo nl2br($data);
flush();
$ex = explode(' ', $data);
if($ex[0] == "PING"){
fputs($irc, "PONG ".$ex[1]."\n");
}
}
}
?>
如何fputs($irc,"PRIVMSG #channel :Message\n");
通过bot.php
发送此邮件,但是可以通过其他文件发送rgeister.php
。 {{1}}?
有人能指出我在正确的方向吗?
答案 0 :(得分:0)
您需要一种在bot.php
和register.php
之间进行通信的方式。
由于两者都在同一台机器上运行,因此比套接字更容易。获取.txt
个文件,然后在register.php
(file_put_contents)中写一条消息。
然后在bot.php
(file_get_contents可能)中的while循环中读取它。如果它是空的那么什么都不做。如果内部有消息,则使用fputs
发送消息,然后清空文件,这样您就不会读取它并在下一个循环中再次发送它。
显然这会受到并发问题的影响。如果性能不是问题,请阅读file locking,我想这不是。