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


A way to clear echo 'd data in a command prompt? (PHP)

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

在过去的几天里,我一直在为SAMP服务器编写一个有用的机器人程序。因此,他们使用IRC(互联网中继聊天)机器人来显示游戏中的信息,比如聊天中说的话、玩家做的动作等等。到目前为止还不错,我到处都有PHP知识,但有一个问题我还没能解决。一段时间后(大约在20到40分钟之间),脚本简单地停止,它不再回复来自服务器的PING请求,因此IRC服务器断开了客户端的连接。我花了一些时间才知道是什么导致了这种情况的发生,可能是命令提示符本身达到了某种行或字符的限制,因为它有时会在行的中间停止回声信息。(类似于:IRCBot PRIVMSG#频道玩家:看,伙计们,我只是犯规)有没有办法防止这种情况发生?到目前为止,我已经把这个放在我的脚本的开头:

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

任何形式的帮助都将不胜感激。感谢阅读。

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

为了将来参考任何可能读过这个有类似问题的线程的人,请确保使用fgets。