我正在抛弃旧问题,以便提出更好的问题。 我通过php使用twitter流api,如下面的脚本。 当我通过命令行运行它。脚本继续运行,当我按下ctrl + c时脚本停止。 多数民众赞成,但我想在后台运行它。当用户创建新搜索时,下面的脚本会被激活并保持运行,直到给出sop信号。就像cli版本一样,但在后台。
我如何实现这一目标?
好的,这是一段代码:
$opts = array(
'http' => array(
'method' => 'POST',
'content' => 'track=ipad'
)
);
$context = stream_context_create($opts);
$stream = fopen('http://test@stream.twitter.com/1/statuses/filter.json','r', false, $context);
while (!feof($stream)) {
if (!($line = stream_get_line($stream, 200000, "\n"))) {
continue;
}
$tweet = json_decode($line);
// mysql query
}
我正在运行它
答案 0 :(得分:0)
您可能需要查看ajax
或其他网络浏览器方法,例如comet或websockets,以实现您想要的效果。
<强>更新强>
因此,如果您希望它在服务器端运行,您应该使用php's exec function之类的内容:
exec("php-cli runForever.php");
答案 1 :(得分:0)
这应该通过从命令行运行php脚本作为守护进程来解决,有很多事情可以解决这个问题。
一个好的开始是Jeroen Keppens在多个php会议上所做的演讲PHP in the dark。
答案 2 :(得分:0)
我正在尝试用this tutorial做同样的事情。它使用System_Daemon pear包并提供开始/停止功能。