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

解决方案 »

  1.   

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

  2.   

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

  3.   

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

  4.   

    最近我也发现了这个问题, 浏览器关闭, 程序是会执行的。 但是应该是执行完当前的内容后, 就会停止。如果你是本地测试, 我一般都直接重启服务。你要做采集, 建议还是用bin方式来做。
      

  5.   

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

  6.   

    嗯,我的采集也出现了这个问题,关闭了浏览器,还一直在下。我的猜想是跟php curl的工作机制有关,具体原因不清楚。起初我注销电脑都不行,一定是重启。
    可能因为是http协议,最后我在进程里关闭浏览器的进程就可以了;另外我觉得可以关闭apache服务应该也可以,没试过。
      

  7.   

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

  8.   

    目测和这个没有关系,php curl是可以支持代理的。
      

  9.   

    跟这个没关系,但跟你的程序写法有关系,由于并没有看到你的程序,所以也不能明确的说一般的说:
    当关闭浏览器,程序会终止(php 还专门设有函数来改变这个行为),是有条件的
    这个条件就是程序必须有输出
    php 只在有输出时才去检查到用户的连接是否断开
      

  10.   

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

  11.   

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