Получить первые и последние 100 символов текстового файла

У меня есть текстовый файл, и в этом текстовом файле всего несколько строк, но он содержит около 5-10 миллионов символов. Я использую file_get_contents, но из-за того, что он читает весь файл, производительность становится очень низкой и иногда зависает при выполнении. Есть ли более эффективный способ получить первые и последние 100 символов?


person Luvias    schedule 03.05.2017    source источник


Ответы (2)


попробуйте это, чтобы получить первые 100 символов:

$fp = fopen('test.txt', 'r');
$data = fread($fp, 100);
echo $data;
fclose($fp);

и получите последние 100 символов:

$fp = fopen('test.txt', 'r');
fseek($fp, -100, SEEK_END);
$data = fread($fp, 100);
echo $data;
fclose($fp);
person tcPeng    schedule 03.05.2017
comment
Это именно то, что я искал. Спасибо - person Luvias; 03.05.2017

Вы можете использовать fread, чтобы указать количество байтов, которые должны быть читать из файла.

Например:

$handle = fopen($filename, 'r');
$contents = fread($handle, 100);
fclose($handle);
echo $contents;

Однако нельзя быть уверенным, что это будет строка из 100 символов. Это зависит от кодировки символов.

person Jerodev    schedule 03.05.2017