不能,就算php里设不超市,web server的响应时间超时了,一样会停止这个请求

解决方案 »

  1.   

    我想到一个办法,
    在循环里读取一个文件内容,如果标识为0就退出循环。
    可以在另外的程序里通过改变这个文件的内容达到停止程序的目的,不过这样效率就大打折扣了,有没有其它的办法?另外。一般web server的超时时间是多少?
      

  2.   

    如果是自己的程序,可以如你所说。
    如果不是呢?
    <?php
    while(1)
      echo 1;
    ?>
    你由如何终止这个程序的运行web server的超时时间
    通常为3分钟。但这是指web server向应用程序(比如php系统)发出请求后,到收到返回信息的时间
    只要应用程序有输出,web server就不会超时其实,按php的默认设置:当连接中断时,php停止执行
    你只需关闭浏览器就可以了,相关信息在手册中有。不过说的很拗口
      

  3.   

    但是我发现关了浏览器还是不能停。
    我是以cgi方式安装的,关了浏览器后,仍有二个php-cgi.exe在进程里,而且任务管理器还不能结束,用别的软件才结束的。
      

  4.   

    的确,关闭浏览器后,PHP就会停止执行的,
    不过并不是立即停止,要等上一段时间。如果PHP还不会停,有可能是PHP的版本问题,我用php.4.3.11就会出现这种情况。
    换低一点的版本就可以了。
      

  5.   

    不是吧,关闭浏览器后php并没有停止执行,仍然在运行直到超时
      

  6.   

    嗯,而且出现死循环时很容易出现WEB服务没响应,可能是我机子配得比较差,一做出死循环我基本上就得重启WEB服务了
      

  7.   


    一是我没说清楚,二是你没有看懂手册上的内容
    php在检查连接是否存在是在输出期间(echo、print、...)所以如果死循环中没有输出是检测不到的
      

  8.   

    我是因为看到手册上的这个东东,才说关闭后就停止执行的。ignore_user_abort
    连接中断后程序是否执行。语法: int ignore_user_abort(int [setting]);返回值: 整数函数种类: PHP 系统功能
     
     
    内容说明 
    本函数配置或取得使用端连接中断后,PHP 程序是否仍继续执行。默认值为中断连接后就停止执行。在 PHP 配置文件中 (php3.ini/php.ini) 的 ignore_user_abort 选项就是配置处。本功能在 PHP 3.0.7 版之后才开始提供。
      

  9.   

    怎么想的那么复杂?
    按浏览器的"停止"按钮可以终止PHP脚本的运行
    我用的浏览器是IE6.0,大家可以试一下<?
    while (1)
    echo "abc789<br>";
    ?>
      

  10.   

    while (1) {
    }
    这样你按stop还有用吗?
      

  11.   

    不是浏览器程序,是PHP脚本。