Heim  >  Artikel  >  Backend-Entwicklung  >  如何停止php执行

如何停止php执行

WBOY
WBOYOriginal
2016-06-23 14:15:072198Durchsuche

我现在搞了个采集的php代码,把网页的数据采集下来保存在桌面,现在测试的时候发现一个问题,在浏览器关闭的情况下,php还在继续执行生成数据,问题来了:如何在关闭浏览器或者点击浏览器上url输入后面的停止按钮使得php代码不再继续执行?


回复讨论(解决方案)

php默认是关闭就停止执行了啊,你用ajax请求php吗?

回复楼上的没有用ajax

直接关闭浏览器就停止了,当前的PHP操作了。

建议从几个角度去查问题:
1.浏览器的进程是否结束
2.Linux的情况,使用不同WEB服务时,配置是否正确,是否存在配置导致浏览器关闭,但是WEB服务的当前进程仍然在执行。

伪进程?
很多人想搞还搞不来呢!
你需要在你的代码中设施并处理可以触及到的终止信号

最近我也发现了这个问题, 浏览器关闭, 程序是会执行的。 

但是应该是执行完当前的内容后, 就会停止。

如果你是本地测试, 我一般都直接重启服务。

你要做采集, 建议还是用bin方式来做。

最近我也发现了这个问题, 浏览器关闭, 程序是会执行的。 

但是应该是执行完当前的内容后, 就会停止。

如果你是本地测试, 我一般都直接重启服务。

你要做采集, 建议还是用bin方式来做。

bin方式指的是?求指点

set_time_limit();

设置脚本最多执行的时间,是最简单的方法。

呵呵,你虽然关了浏览器,但是程序的指令早就已经发出去了,再他未完成所有的指令之前,假如没有给停止命令(是的是跟底层,服务器有关的指令,不是指管浏览器),之前的未完成的指令会继续执行,知道指令完成或者被迫停止(比如重启服务器,或者重启web服务程序)

加个exit()试试看

嗯,我的采集也出现了这个问题,关闭了浏览器,还一直在下。我的猜想是跟php curl的工作机制有关,具体原因不清楚。

起初我注销电脑都不行,一定是重启。
可能因为是http协议,最后我在进程里关闭浏览器的进程就可以了;另外我觉得可以关闭apache服务应该也可以,没试过。

程序设置了最大执行时间很长,程序里面用了sleep主要防止采集的太快封ip,不知道和这个有没关系。

程序设置了最大执行时间很长,程序里面用了sleep主要防止采集的太快封ip,不知道和这个有没关系。 目测和这个没有关系,php curl是可以支持代理的。

跟这个没关系,但跟你的程序写法有关系,由于并没有看到你的程序,所以也不能明确的说

一般的说:
当关闭浏览器,程序会终止(php 还专门设有函数来改变这个行为),是有条件的
这个条件就是程序必须有输出
php 只在有输出时才去检查到用户的连接是否断开

先在任务管理器确认浏览器进程是否关闭了再谈更高深的问题吧

我关浏览器通常都要等几分钟进程才结束,机器年代久远……

还是没找到解决办法,只有重启apache才能终止。

就是php的命令行方式, 而且最好是在Linux下面使用, 稳定。 

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn