preg_split (): тема слишком длинная - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь разобрать содержимое файла в массив, на самом деле preg_match работает хорошо, но с большим файлом выдает следующее сообщение:

Warning: preg_split(): Subject is too long in /var/www/html/script.php on line 81

Я пытаюсь с этим кодом:

$fileLines = file($file);
    foreach ($fileLines as $line) {
        $rows = preg_split('/\n/', $line);
        $rowCount = 0;
        // THEN I PROCESS THE ROWS
    }
}

Фактический размер файла составляет почти 2,5 ГБ, и я думаю, что это не проблема с памятью, потому что я уже увеличил память в VPS и изменил файлы конфигурации.

Есть идеи?

1 Ответ

0 голосов
/ 27 февраля 2019

Вы должны читать построчно:

$handle = fopen("inputfile.txt", "r");
if ($handle) {
    while (($line = fgets($handle)) !== false) {
        // process the line read.
    }
    fclose($handle);
} else {
    // error opening the file.
} 

Независимо от того, насколько велик ваш файл, вы сможете обработать его.

...