строка — Как получить х количество символов из текстового файла с помощью PHP?

Я пытаюсь получить около 200 букв / символов (включая пробелы) из внешнего текстового файла. У меня есть код для отображения текста, который я включу, но чтобы получить определенные буквы, я понятия не имею. Еще раз, я не говорю о линии, я действительно имею в виду буквы.

<?php
$file = "Nieuws/NieuwsTest.txt";
echo file_get_contents($file) . '<br /><br />';
?>

2

Решение

Используйте пятый параметр file_get_contents:

$s = file_get_contents('file', false, null, 0, 200);

Это будет работать только с набором из 256 символов и будет не корректно работать с многобайтовыми символами, так как PHP не предлагает встроенную поддержку Unicode, к несчастью.

Для того, чтобы прочитать конкретное количество Unicode символы, вам нужно будет реализовать свою собственную функцию с использованием расширений PHP, таких как международный а также MBstring. Например, версия fread Принятие максимального количества символов UTF-8 может быть реализовано следующим образом:

function utf8_fread($handle, $length = null) {
if ($length > 0) {
$string = fread($handle, $length * 4);
return $string ? mb_substr($string, 0, $length) : false;
}

return fread($handle);
}

Если $length положительно, функция считывает максимальное количество байтов, которое может принять строка UTF-8 с таким количеством символов (символ UTF-8 представлен в виде от 1 до 4 8-битных байтов), и извлекает первое $length многобайтовые символы, использующие mb_substr. В противном случае функция читает весь файл.

UTF-8 версия file_get_contents может быть реализовано аналогичным образом:

function utf8_file_get_contents(...$args) {
if (!empty($args[4])) {
$maxlen = $args[4];
$args[4] *= 4;
$string = call_user_func_array('file_get_contents', $args);
return $string ? mb_substr($string, 0, $maxlen) : false;
}

return call_user_func_array('file_get_contents', $args);
}
4

Другие решения

Вы должны использовать функции substr ().

Но я рекомендую вам использовать multy byte safe mb_substr ().

    $text = mb_substr( file_get_contents($file), 200 ) . '<br /><br />';

С substr у вас будут проблемы, если есть некоторые акценты и т. Д. Эти проблемы не возникнут с mb_substr ()

1

использовать этот:

<?php
$file = "Nieuws/NieuwsTest.txt";
echo substr( file_get_contents($file), 0, 200 ) . '<br /><br />';
?>
-1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector