За последние 24 часа нас посетили 15545 программистов и 1612 роботов. Сейчас ищут 832 программиста ...

Чтение текста из файла с указанной строки

Тема в разделе "PHP для новичков", создана пользователем Elf-Alex, 6 дек 2013.

  1. Elf-Alex

    Elf-Alex Новичок

    С нами с:
    14 авг 2013
    Сообщения:
    21
    Симпатии:
    0
    Здравствуйте. Помогите, пожалуйста. Задача, кажется, не сложная, но никак не могу её решить.

    Нужно прочитать содержимое текстового файла в массив строк, но не целиком, а начиная со строки с указанным номером. Спасибо.
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Большой файл? Если не очень, можно просто пропустить первые $n строк:
    Код (Text):
    1.  
    2. $f = fopen("file.txt", "r");
    3. $count = 0;
    4. while ($l = fgets(f) && $count++ < $n);
     
  3. Elf-Alex

    Elf-Alex Новичок

    С нами с:
    14 авг 2013
    Сообщения:
    21
    Симпатии:
    0
    Решение найдено:

    Код (Text):
    1.  
    2. // Получить все строки файла в массив.
    3. $file_content_array=file($filename);
    4.  
    5. // Удалить первые 15 элементов массива (строк).
    6. $file_content_array=array_slice($file_content_array, 15);
    Всем спасибо, вопрос снят.
     
  4. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Не по ТЗ :) При таком способе загружается весь файл. При некотором размере файла скрипт перестанет работать.


    Я бы искал начало нужной строки через поиск \n и \r\n с помощью fgetc.
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    условия задачи нарушены.
     
  6. Elf-Alex

    Elf-Alex Новичок

    С нами с:
    14 авг 2013
    Сообщения:
    21
    Симпатии:
    0
    Возможно, я (гуманитарий) не совсем верно сформулировал ТЗ. Но я решил именно свою задачу.
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    В таком случае, зачем отрезать строки?
     
  8. Elf-Alex

    Elf-Alex Новичок

    С нами с:
    14 авг 2013
    Сообщения:
    21
    Симпатии:
    0
    Потому, что мне нужно получить всё то, что находится после указанной (например, 15-й) строки. Отрезав то, что до 15-й строки, я и получаю то, что мне нужно.
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Можно просто работать с нужными строками по их индексам.
     
  10. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632