Какой самый эффективный способ PHP прочитать первую и последнюю строку файла?

0

Я пытаюсь открыть файл и определить, действительно ли он. Это действительно, если первая строка - START, а последняя строка - END.

Я видел разные способы получения последней строки файла, но он не обращает особого внимания на первую строку.

Как мне это сделать? Я думал о загрузке содержимого файла в массив и проверке $ array [0] и $ array [x] для START и END. Но это кажется пустой тратой для всего мусора, который может быть посередине.

Если это действительный файл, я буду читать/обрабатывать содержимое файла между START и END.

Теги:

3 ответа

1

Не читайте весь файл в массив, если он не нужен. Если файл может быть большим, вы можете сделать это так:

$h = fopen('text.txt', 'r');
$firstLine = fgets($h);
fseek($h, -3, SEEK_END);
$lastThreeChars = fgets($h);

Объем памяти значительно ниже

  • 0
    почему это было отвергнуто?
  • 0
    потрясает меня, но это неэффективно
Показать ещё 1 комментарий
0

Это от меня:

$lines = file($pathToFile);
if ($lines[0] == 'START' && end($lines) == 'END') {
    // do stuff
}
  • 0
    Файл читает весь файл в массив. Если в нем более ~ 50 тыс. Строк, большинство настроек php по умолчанию не будет поддерживать массив такой длины.
  • 0
    @NickMaroulis это каким-либо образом мешает OP вопрос?
Показать ещё 3 комментария
-1

Чтение всего файла с помощью fgets будет эффективным для маленьких силосов. Файл iF ur большой:

  1. откройте его и прочитайте первую строку
  2. использовать хвост (я не проверял его, но он выглядит нормально), которую я нашел в php.net в документации fseek

Ещё вопросы

Сообщество Overcoder
Наверх
Меню