运行环境WIN7+IIS7+PHP Version 5.2.14,PHP配置内存1024M
我做一个for循环,代码如下
<?php
set_time_limit(0);
$file = file("pp.txt");
for($i=0;$i<=57683;$i++){
echo $i."<br \><br \>";
$value = $file[$i];
preg_match_all("/^\S*\t/",$value,$aa);
echo $aa[0][0]."<br \><br \>";
preg_match_all("/[a-zA-Z…,-\s-\r\n]*(?=\\\\n)/",$value,$bb);
echo $bb[0][0]."<br \><br \><hr />";
preg_match_all("/(?<=\\\\n).*/",$value,$cc);
}
echo $i;
?>
刚开始执行到3万多的时候自己就停止了,没有提示任何错误,刷新几次后在2万多的地方停止执行,没有提示任何错误,最后的 echo $i 也没有执行。哪位大侠知道这是为什么?

解决方案 »

  1.   

    有可能是超时了吧,修改php.ini,重启IIS,再看看有没有报错,如果确实是超时了,再放大max_execution_time配置项的值。
    display_errors = On
    error_reporting = E_ALL
      

  2.   

    程序开头已经写上
    set_time_limit(0);,
    php配置中
    display_errors = On
    error_reporting = E_ALL
    和你说的应该一样了,但是执行还是不行。
      

  3.   

    另外就是文件有3万多行,我使用以下代码,输出数组却只有7000多个元素。
    set_time_limit(0);
    error_reporting(E_ALL);
    $file = file("ppp.txt");
    echo "<pre>";
    print_r($file);
    die();
      

  4.   

    memory_limit = 256M 这个配置设置大一点.
      

  5.   

    不一定事停止执行,看一下你的进程里有没有PHP还在执行,很多时候只不过是转入后台执行而已!
      

  6.   

    时间/内存,php和iis都有各自限制$file = file("pp.txt");
    这个改成其它方式读取读一行处理一行,然后清空再进行下一行
      

  7.   

    清空了也不行,换个win2003的系统就正常了,看来win7还是不能做服务器用,只能做简单的开发测试。
      

  8.   

    你的2003装的是php5.3吧?5.3的垃圾回收机制好很多,内存消耗能边运行边回收