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