PHP

Как в php обрезать строку

Здравствуйте, уважаемые читатели,в этой статье мы коротко рассмотрим, как в php обрезать строку. Задача обрезания строк в php возникает, как правило, тогда когда необходимая информация слишком длинная и не помещается в предназначенный для нее размер блока на сайте. Такой информацией, например, может являться анонс новости, который необходимо уместить в трех строках и обрезав текст, добавить к концу строки многоточие.

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

Вариант 1 (самый тривиальный способ обрезать строку)
$str  = substr($str,0,240).’…’;

Казалось бы, отличный способ, краткий и удобный, но за лаконичностью этого примера скрывается несколько проблем:

строка обрезается ровно на 240 символе не взирая на кодировку, другими словами некоторые символы закодированные более чем одним байтом будут разрезаны некорректно и в результате по лучится неизвестный символ, который в свою очередь заменится прекрасным знаком вопроса в контенте сайта.
второй минус в том, что часть слова, на которую пришелся 240 символ, может оказаться совершенно не читаемой, или даже изменить смысл предложения.
Вариант 2 (обрезаем строку php до символа пробела)
function cropStr($str, $size){ 
  $str = substr($str,0, $size); // первым этапом надо отрезать строку четко по заданному количеству символов
  return substr($str, 0, strrpos($str, ' ' ));    //получаем позицию последнего пробела и обрезаем до нее строку
}

Такой вариант учитывает попадание начала обрезания строки на середину слова и на выходе возвращает хорошо грамотно обрезанный текст без обрывков слов.
В минусах по-прежнему проблема с кодировкой.

Вариант 3 (правильно обрезаем строку php)
function cropStr($str, $size){ 
  return mb_substr($str,0,mb_strrpos(mb_substr($str,0,$size,'utf-8'),' ',utf-8),'utf-8');
}

Данный вариант является самым наилучшим и практичным в применении способом в php обрезать строку до символа. Функцией mb_substr мы не просто обрезаем строку php до пробела, но и учитываем кодировку этой строки. Такой подход позволяет избежать проблемы с появлением знаков вопроса после обрезки текста.

Надеюсь данный урок будет полезен начинающим программистам, поскольку именно они чаще всего сталкиваются с такими актуальными задачами как “обрезать строку с конца php” или “php обрезать строку до символа”
Теги:
строка
Добавлено: 24 Сентября 2013 01:35:22 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...