代码工作正常,但突然停止工作

时间:2011-04-16 19:18:15

标签: php foreach fopen nested-loops

此代码打开一个文本文件,然后检查文本文件中的每个单词 存在于另一个大型2MB字典文件中。

如果确实存在,则将字典文件中的行存储到变量中。

代码正常运行,但随后开始生成Server 500错误 它只列出了大约7场比赛,然后永远不加载任何内容。

它曾用于列出1000的比赛,然后停止。

$file_handle = fopen("POSdump.txt", "r");
while (!feof($file_handle)) {
   $line = fgets($file_handle);

   $words= explode(" ", $line ); 

   foreach ($words as $word) {

       $word = preg_replace('#[^\w+>\s\':-]#', ' ', $word);                

       $subwords= explode(" ", $word );

       $rawword = $subwords[0];   
       $poscode = $subwords[1];
       $rawword = strtoupper($rawword);       


             $handle = fopen("dictionary.txt","r"); // 

             if ($handle) {
               while (!feof($handle)) 
                           {
                      $buffer = fgets($handle, 4096); 

                        if (preg_match('#\b'.$rawword.'\b#',$buffer)) {


                        echo $rawword;
            echo "</br>";


                 }
             }
         }
     }
}

?>

2 个答案:

答案 0 :(得分:1)

完成后尝试关闭文件。

答案 1 :(得分:0)

这似乎是一个memory_limit错误。在开始这个过程之前使用ini_set('memory_limit', - 1)。