Удалить некоторые строки из текстового файла - PullRequest
0 голосов
/ 04 мая 2018

Есть текстовый файл около 3 ГБ. Мне нужно удалить некоторые строки из этого, но я не уверен, что мой метод хорош. Я сделал следующие шаги: - прочитать строку эха из документа - найти необходимые строки для удаления - получить 2 массива: строки для сохранения и строки для удаления

Что должны делать следующие шаги? Да, эта задача выглядит легкой для небольших документов, но с гигантским файлом возникает больше проблем.

1 Ответ

0 голосов
/ 04 мая 2018
if( $fh = fopen("file.txt", "r") ){ 
        $left='';

        while (!feof($fh)) {// read the file
        $temp = fread($fh);  
        $fgetslines = explode("\n",$temp);
        $fgetslines[0]=$left.$fgetslines[0];

             if(!feof($fh) )$left = array_pop($lines);           
             foreach($fgetslines as $k => $line){
                   //This is where you can build your check for the strings you want to remove 
                   //if statement or switch, which ever makes sence with your current logic.
                   //After excluding your strings from the temp file 
                   //overwrite your original file with the temp file of proper strings that you want.
              }
        }
}
fclose($fh);

Я думаю, это то, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...