stristr ve hız

0 Cevap php

Ben etrafında 5MB dosya, iki dosya var ve 66 mb civarında dosya b ettik. Ben dosya b içeride dosya a'da hatlarının herhangi occurnaces, varsa öğrenmek gerekir, ve eğer öyleyse c dosyasına bunları yazmak.

Bu benim şu anda bunu hallediyorum yoludur:

ini_set("memory_limit","1000M");
set_time_limit(0);
$small_list=file("a.csv");
$big_list=file_get_contents("b.csv");
$new_list="c.csv";
$fh = fopen($new_list, 'a');
foreach($small_list as $one_line)
{
 if(stristr($big_list, $one_line) != FALSE) 
    {
    fwrite($fh, $one_line);
    echo "record found: " . $one_line ."<br>";
    }   
}

Sorun onun küçük dosyasında 160.000 'içine bir saat ve belki 3000 hatlar üzerinden için (başarılı) yürütüyor edilir. Herhangi bir fikir?

0 Cevap