一种在命令提示符中清除echo'd数据的方法? (PHP)

时间:2013-12-01 20:52:38

标签: php command bots irc prompt

首先,您好,感谢提前阅读。

在过去的几天里,我一直致力于为SAMP服务器编写有用的机器人。因此,他们使用IRC(互联网中继聊天)机器人来显示游戏内信息,例如聊天中说的内容,玩家所做的动作等等。 到目前为止一直很好,在这里和那里得到了PHP知识,但是有一个问题我无法解决。 经过一段时间(大约20到40分钟)之后,脚本会停止,并且不再回复来自服务器的PING请求,因此IRC服务器会断开客户端的连接。 我花了一些时间来了解导致这种情况发生的原因,并且可能是命令提示符本身已达到某种行或字符限制,因为它有时会阻止回显信息。一条线。 (类似于:IRCBot PRIVMSG #channel Player:看起来我只是一个人) 有没有办法防止这种情况发生?到目前为止,我已将其放在脚本的开头:

set_time_limit(0);
ini_set('display_errors', '1');
ini_set('max_execution_time', '0');

有趣的事实,没有一个有效。如果它有帮助,我的脚本的回声方式是这样的:

while ($data = fgetss($sock)) {
echo nl2br($data);
flush();
// Script below

感谢任何形式的帮助。谢谢你的阅读。

1 个答案:

答案 0 :(得分:0)

我使用fgetss而不是fgets犯了一个错误。问题是fgetss在EOF(文件结束)处停止,这导致了我的问题。

为了以后参考任何可能会在类似问题上阅读此主题的人,请确保使用fgets。