PHP打开一个大文件

时间:2015-07-15 15:14:18

标签: php regex file large-files

读取.TXT文件的最佳方法是什么(文件大小为225mb)。我想打开文件并通过它循环并通过REGEX查找信息。

文件中的示例数据:

  

00424333060001410100100BILLLLOYD BRRUSSELL& 12675 MAKALISO AVE WEST WORKS TOWN KS 23456-1035 3341310350630200500004200000001887800001789IWD QM1214200400003367250001799900001287IWD QM 000000000000000000000000000000 000000000000000000000000000000

我遇到的问题是文件永远打开。通过搜索需要一段时间。我的循环可能有75个我需要搜索的项目。

    $name2 = "BILLLLOYD BRRUSSELL ";
    $RE21 = "/[0-9]{23}.$name2/";
    $file = fopen("MYFILE.TXT", "r");
    while(!feof($file)){
        $line = fget($file);  

    for ($row = 0; $row = 75; $row++{
    $name2 = data i am getting from another file...;
    $RE21 = "/[0-9]{23}.$name2/";  //Not sure if this works!!
    $a = preg_match($RE21, $line, $matches);
    foreach($matches as $x => $x_value) {
      I will $x_value and store it.} //$x_value should be 00424333060001410100100BILLLLOYD BRRUSSELL 
    }   //foreach  
} //for
}//while
fclose($file);

2 个答案:

答案 0 :(得分:0)

也许您应该尝试不同的方法并使用命令行grep?使用生成的模式和要搜索的文件从“另一个文件”生成regexp并执行grep命令?

使用-o标志仅从结果中获取匹配项

答案 1 :(得分:0)

您可以逐行阅读:

$handle = fopen("bla.txt", "r");
while (($buffer = fgets($handle, 4096)) !== false) {
   // ...
}
fclose($handle);