如何在无限循环中每3分钟回复一次?

时间:2015-01-23 12:23:00

标签: php html xml xmpphp

我有一个使用while(true)运行的脚本,因此它会一直运行直到它死亡。

我希望能够每隔3分钟发送一次消息并重新连接每个断开连接,我该怎么做?

使用PHP托管在Jabber服务器上运行的脚本,因此令人困惑,而且我不知道如何让它每隔3分钟执行一次,并在断开连接时自动重新连接,因为如果我正在使用{ {1}}或sleep()脚本将堆叠,脚本自动响应消息将无法运行。

那我该怎么做呢?有人能帮助我吗?

usleep()

4 个答案:

答案 0 :(得分:2)

使用睡眠功能: http://php.net/manual/en/function.sleep.php

// sleep for 30 seconds
sleep(30);

答案 1 :(得分:0)

你可以使用sleep();

echo $statement1;
sleep(180);
echo $statement2;

答案 2 :(得分:0)

尝试这样的事情:

<?php

while (@ob_end_flush());
try {
    while (!$this->disconnect()) {
        $this->connect();
        while (!$this->isDisconnected()) {
            $starts = $this->processUntil(array('message', 'session_start'));
            foreach ($starts as $go) {
                $new = $go[1];
                switch ($go[0]) {
                    case 'session_start':
                        break;
                    case 'message':
                        $filter = $show = "online";
                        if ($new['from'] == $filter) {
                            $sender = explode('@', $new['from']);
                            $this->message($new['from'], $body = "Auto Respond Message: Sorry $sender[0] Iam Not Here Right Now", $type = "chat");
                        }
                        $the_time = time();
                        $interval = 3 * 60;
                        while (true) {
                            if ($the_time + $interval >= time()) {
                                $this->message($myself, $body = "PING !!!", $type = "chat");
                                ob_flush();
                                flush();
                                $the_time = time();
                            }
                            $this->presence($status = "ONLINE !!!", $show = "online");
                        }
                        break;
                }
            }
        }
    }
} catch (XMPPHP_Exception $e) {
    die($e->getMessage());
} 

答案 3 :(得分:0)

使用循环并使用sleep回显文本;

// sleep for 20 seconds
while( true )
{
   echo "text here!";
   sleep(20);
}

它将在1分钟内回复文本3次。