与死PHP脚本

时间:2011-09-23 14:25:15

标签: php

我想通过while(true){ }运行一个php脚本。

它会被其他人发送给我并回答它们。(像雅虎机器人那样)

现在,如果我设置set_time_limit(0)并使用while(true)并在我的服务器http://ip-address/yahoo.php上运行此页面并关闭浏览器,它是否会永远运行?

6 个答案:

答案 0 :(得分:5)

不,它不会永远运行,关闭浏览器后脚本会终止。你的整个方法都是错误的,你创建了一个守护进程,它在后台运行时监听套接字,它不会运行(true),因为那是CPU循环浪费,这是一个巨大的循环。

关于websockets和node.js的研究,听起来你需要类似于已经创建的内容。

答案 1 :(得分:4)

ignore_user_abort(true)可能会这样做

  

ignore_user_abort - 设置客户端断开连接是否应中止脚本执行

答案 2 :(得分:2)

以这种方式做这不是一个好主意,也不应该有用。 您最好从shell中运行脚本并将其背景化,或者在屏幕上运行它。

答案 3 :(得分:1)

没有

如果您希望脚本永久运行,请在终端(或命令提示符)中运行它。 如果你关闭终端脚本也会停止。

答案 4 :(得分:1)

尝试使用php cli,这样就可以通过命令行运行php了。 你可以创建一个启动它的Bash文件,因此脚本将“永远”运行。

但是如果你通过浏览器启动它就不会永远运行。

答案 5 :(得分:0)

不,PHP只在请求的情况下才存在。如果你关闭了浏览器,请求也会死亡。

[编辑]

正如其他评论者澄清的那样,ignore_user_abort功能可以帮助你解决问题。