Добрый день.
Возникла такая необходимость,как обработать 10гб текстовых файлов, все эти файлы лежат по разным папкам. В данный момент написал я скрипт php, который пробегает по всем папкам и находит там только .txt файлы,далее он открывает каждый файл и построчно его читает и ищет в строках ключевые слова (кусок кода указал)
foreach ( $array_url as $addr ) {
$handle = @fopen($addr, "r");
if ($handle)
{
while (!feof($handle))
{
$buffer = fgets($handle);
foreach ( $searchthis as $search ) {
if(strpos($buffer, $search) !== FALSE)
$matches[] = $buffer;
//Тут мне нужно хотя бы 1 вхождение, но скрипт ищет все вхождения.
//Как при нахождении хотя бы 1 вхождения сразу перейти в другой файл?
}
}
fclose($handle);
}
unset($buffer);
unset($handle);
}
Далее я смотрю, если есть хотя бы что-то в $matches то переношу этот файл в другую папку, и так далее по всех txt.
Это все хорошо работает на ~100 файлах (объем файлов до 1мб), но при 10гб файл думаю так не будет...
Как лучше обработать такой объем? Может лучше будет обработать только средствами linux?