PHP. Сокращение длинного текста. Функция mb_substr_replace
Данный материал предоставлен сайтом
PacificSky.Ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Сокращение длинного текста и вывод многоточия с определенной позиции. Создание собственной функции mb_substr_replace.
Представим пример, что у нас есть текст в блоке вывода последних сообщений с форума.
И этот текст имеет слишком большую длину и не умещается по размерам в месте вывода.
В данном уроке продемонстрирован пример как сократить размер длинного теста и выводить многоточие с определенной позиции.
Функция была найдена на сайте php.net
Обозначим заранее параметры функции:
Первый параметр - входная строка.
Второй параметр - строка замены.
Третий параметр - нумерация символа с которого начинается замена.
Четвертый параметр - длина заменяемой подстроки в строке (Обычно равен null).
Пятый параметр - кодировка строки.
Исходный код функции:
Проведение теста работы функции:
Исходная строка:
Строка замены:
Символ с которого начинается замена:
Полученный результат:
Представим пример, что у нас есть текст в блоке вывода последних сообщений с форума.
И этот текст имеет слишком большую длину и не умещается по размерам в месте вывода.
В данном уроке продемонстрирован пример как сократить размер длинного теста и выводить многоточие с определенной позиции.
Функция была найдена на сайте php.net
Обозначим заранее параметры функции:
Первый параметр - входная строка.
Второй параметр - строка замены.
Третий параметр - нумерация символа с которого начинается замена.
Четвертый параметр - длина заменяемой подстроки в строке (Обычно равен null).
Пятый параметр - кодировка строки.
Исходный код функции:
function mb_substr_replace($string, $replacement, $start, $length=null, $encoding=null) {
if ($encoding == null) $encoding = mb_internal_encoding();
if ($length == null) {
return mb_substr($string, 0, $start, $encoding) . $replacement;
}
else {
if($length < 0) $length = mb_strlen($string, $encoding) - $start + $length;
return
mb_substr($string, 0, $start, $encoding) .
$replacement .
mb_substr($string, $start + $length, mb_strlen($string, $encoding), $encoding);
}
}
Проведение теста работы функции:
Исходная строка:
$string = "Это просто строка для проверки";
Строка замены:
$replacement = "...";
Символ с которого начинается замена:
$start = 17;
$string = "Это просто строка для проверки";
$replacement = "...";
$start = 17;
echo mb_substr_replace($string, $replacement, $start);
function mb_substr_replace($string, $replacement, $start, $length=null, $encoding=null) {
if ($encoding == null) $encoding = mb_internal_encoding();
if ($length == null) {
return mb_substr($string, 0, $start, $encoding) . $replacement;
}
else {
if($length < 0) $length = mb_strlen($string, $encoding) - $start + $length;
return
mb_substr($string, 0, $start, $encoding) .
$replacement .
mb_substr($string, $start + $length, mb_strlen($string, $encoding), $encoding);
}
}
Полученный результат:
Это просто строка...
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.