这段代码打开一个文本文件,然后检查文本文件中的每个单词是否存在于另一个大的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>";
}
}
}
}
}
?>
完成后尝试关闭文件
这似乎是memory_limit错误。在启动进程之前使用ini_set('memory_limit', -1)