За последние 24 часа нас посетили 19118 программистов и 1644 робота. Сейчас ищут 918 программистов ...

Работа со строками текстовых файлов

Тема в разделе "PHP для новичков", создана пользователем murich, 17 дек 2008.

  1. murich

    murich Активный пользователь

    С нами с:
    28 дек 2007
    Сообщения:
    8
    Симпатии:
    0
    Здравствуйте. Подскажите пожалуйста, как с наименьшими жертвами и наибольшей скоростью
    1) Прочитать строку определенную из текстового файла
    2) Дописать строку в конец текстового файла

    Текстовый файл предполагается большой, поэтому открывать его весь каждый раз или делать массив со всеми строками совсем не хочется.
     
  2. Greg1978

    Greg1978 Активный пользователь

    С нами с:
    18 окт 2008
    Сообщения:
    484
    Симпатии:
    0
    Адрес:
    class SenjorUser{}
    fopen(...,"a+");
    Возвращает идентификатор файла.
     
  3. murich

    murich Активный пользователь

    С нами с:
    28 дек 2007
    Сообщения:
    8
    Симпатии:
    0
    Ага. Спасибо. Я так понял, с помощью этого я могу дописать строку в конец файла.
    А как прочесть произвольную?
     
  4. GudGuy

    GudGuy Активный пользователь

    С нами с:
    14 июн 2007
    Сообщения:
    909
    Симпатии:
    0
    Адрес:
    Москва
     
  5. free-bits

    free-bits Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    296
    Симпатии:
    0
    Адрес:
    г. Красноярск
    Если поиск сроки будет по номеру - одно дело, если по содержанию то совсем другое
     
  6. murich

    murich Активный пользователь

    С нами с:
    28 дек 2007
    Сообщения:
    8
    Симпатии:
    0
    Прочел. Не нашел. Пожалуйтса, если можно- конкретнее


    по номеру. я так понял, что нужно как-то указатель переместить на нужную мне строку и воспользоваться fgets(), но не знаю как.
     
  7. GudGuy

    GudGuy Активный пользователь

    С нами с:
    14 июн 2007
    Сообщения:
    909
    Симпатии:
    0
    Адрес:
    Москва
    $f=file("имя_файла");
    $stroka=$f[номер_строки];
     
  8. murich

    murich Активный пользователь

    С нами с:
    28 дек 2007
    Сообщения:
    8
    Симпатии:
    0
    А так, чтобы не писать в массив все содержание файла?
    Ато памяти не хватит...
     
  9. free-bits

    free-bits Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    296
    Симпатии:
    0
    Адрес:
    г. Красноярск
    Могу предложить чтение до нужной строки
    PHP:
    1.  
    2. <?
    3. $i = 0;
    4. $file = fopen("file.php", "r");
    5. while (!feof($handle)) {
    6.     $line = fgets($handle);
    7.     if ($n == $i++) break;
    8. }
    9. echo $line;
    10.  
     
  10. murich

    murich Активный пользователь

    С нами с:
    28 дек 2007
    Сообщения:
    8
    Симпатии:
    0
    free-bits
    спасибо. Пока это лучший вариант.