код работал, но вдруг перестал работать - PullRequest
0 голосов
/ 16 апреля 2011

Этот код открывает текстовый файл, а затем проверяет, есть ли каждое слово в текстовом файле. Существует в другом большом словарном файле размером 2 МБ.

Если он существует, он сохраняет строку из файла словаря в переменную.

Код работал, но затем начал генерировать ошибки Server 500, а теперь В нем только около 7 совпадений, а затем ничего не загружается навсегда.

Раньше он перечислял тысячи матчей, а затем останавливался.

$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 ]

1 голос
/ 16 апреля 2011

Попробуйте закрыть файл, когда закончите.

0 голосов
/ 16 апреля 2011

Это похоже на ошибку memory_limit.используйте ini_set ('memory_limit', -1) перед началом процесса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...