$line = file("test.txt"); Как получить строки в несколько подходов

Тема в разделе "Как сделать...", создана пользователем silmarion, 17 авг 2014.

  1. silmarion

    silmarion

    Регистр.:
    21 июн 2012
    Сообщения:
    194
    Симпатии:
    19
    Доброго всем дня, есть большие текстовые файлы, порядка 50кк строк в каждом, вставляю всю эту хрень в mysql.

    Как получить строки из test.txt не сразу все, а к примеру по 1000 за раз?

    С первой по 1000
    с 1001 по 2000
    с 2001 по 3000
    и т.д


    А то за 1 раз обрабатывать такие файлы нереально
     
    Шумадан нравится это.
  2. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.725
    Симпатии:
    2.100
    Джуга, Ctrogan и hbs нравится это.
  3. enterwap

    enterwap Писатель

    Регистр.:
    30 июл 2014
    Сообщения:
    9
    Симпатии:
    2
    Ну или можно через fread читать с указанием длины

    while (!feof($handle))
    {
    $contents .= fread($handle, 8192);//8kb
    }
     
    Последнее редактирование: 18 авг 2014
  4. silmarion

    silmarion

    Регистр.:
    21 июн 2012
    Сообщения:
    194
    Симпатии:
    19
    Это получается чтото вроде такого?
    $contents = file("test.txt");
    while (!feof($handle))
    {
    $contents .= fread($handle, 8192);//8kb
    }

    ?

    Он получается будет считывать частями по 8кб из этого файла, или прочитает только первые 8кб?
     
  5. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.725
    Симпатии:
    2.100
    пример будет считывать частями по 8к пока не дойдёт до конца
     
    Джуга, Ctrogan и hbs нравится это.
  6. silmarion

    silmarion

    Регистр.:
    21 июн 2012
    Сообщения:
    194
    Симпатии:
    19
    А построчно как то можно? По 1000 строк за раз к примеру пока не дойдет до конца файла?
    если побайтно то может отрезать кусок строки к примеру
     
    Шумадан нравится это.
  7. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.725
    Симпатии:
    2.100
    попробуйте разобрать пример с splfileobject seek, ссылку я запстил ранее
     
    Джуга, Ctrogan и hbs нравится это.
  8. The_Wolf

    The_Wolf

    Регистр.:
    21 окт 2013
    Сообщения:
    339
    Симпатии:
    189
    Можно и array_splice но эта функция вырезает строки из массива