从源代码重新编译以包含setInterval功能?

时间:2015-02-27 22:56:04

标签: php

我手头有一个非常麻烦的问题。我正在使用在PHP中运行的Web套接字服务器。问题是我需要能够使用类似于JavaScript的setInterval / setTimeout函数,但是在我的php套接字服务器中。

我没有时间或资源将我的整个项目转换为nodejs / javascript。这需要永远。我非常喜欢php,我不想进行切换。其他一切正常,我觉得不值得重新编写所有内容只是因为我不能在php中使用类似的setInterval函数。

由于php套接字服务器在shell中运行,我可以使用循环使用setInterval类型函数: http://pastebin.com/nzcvXRph

这段代码确实按预期工作,但是对于资源来说似乎有些过分,我觉得循环会吸引大量资源。

无论如何我可以从源代码重新编译PHP并包含一个“while2”循环,它只会每500毫秒而不是立即迭代一次?

1 个答案:

答案 0 :(得分:-1)

  1. 我认为没有办法从源代码重新编译PHP。

  2. 如果您想延迟循环的执行,可以使用sleep函数,该函数用于延迟执行。

  3. 例如,我希望每2秒后打印10个数字,然后下面的代码就可以完成这项工作。

    for($i=0;$i<=10;$i++)
    {
         print($i++);
         sleep(2);
    }
    

    检查PHP文档here

    修改

    跟进我在回复中提到的内容,如果您希望用户拥有自己的运行时实例,那么线程就是一个选项。 PHP中的多线程应用程序的示例非常有限,我建议查看JAVA中的一些示例,它不应该难以理解。 Here是一个很好的视频教程。

    对于PHP

    1. php.net/threads
    2. 查看贡献者的说明,有时人们会写出好的例子。