Как сделать фиксированную длину (смещения) для каждой строки в текстовом файле

#php #text #offset

#php #текст #смещение

Вопрос:

Я использую PHP для чтения строк по заданному смещению (используя fseek) как

 fseek($fp, 51);
$data = fgets($fp, 4096);
  

Длина каждой строки составляет менее 10 символов. Могу ли я сделать фиксированную длину 10, чтобы начало каждой строки было равно 0,10,20,30,40, ….

Строки имеют вид

 first
second
third
  

На самом деле, я хочу виртуально (действительно, подделать) сообщить fseek() , что каждая строка состоит из 10 символов.

Ответ №1:

Похоже, вам следует использовать fgets. Невозможно эмулировать строки, состоящие из 10 символов, если их нет, без чтения данных и последующей их обработки (невозможно искать, не зная, где искать).

Вы могли бы просто использовать fgets для просмотра строк, а затем substr() их всех до 10 символов

Если причина, по которой вы хотите это сделать, заключается в соображениях производительности, вам, вероятно, потребуется сохранить данные по-другому (или использовать индексацию). Чтобы иметь возможность искать конкретную запись, вам нужно будет иметь возможность определить, к какому элементу обращаться. Самый простой способ разрешить это — заполнить строки. (Если каждая строка состоит из 10 символов, то можно просто искать и обрезать на основе 10 * x)