![]() |
+7 (495) 229-0436 | ![]() |
shopadmin@itshop.ru | 119334, г. Москва, ул. Бардина, д. 4, корп. 3 | ![]() |
![]() |
![]() |
|
|
Получение подстроки без потери части слова06.07.2012 12:19
Иногда возникает задача получить часть строки фиксированной длины (чаще всего это вводная часть от полного текста для публикации анонса материала). Для того, чтобы получить часть строки фиксированной длины, php-программисты используют функцию substr().Эта функция возвращает подстроку строки string, начинающейся с start символа по счету и длиной length символов. string substr (string $string , int $start [, int $length ]) Но при использовании данной функции возникает следующая проблема - она обрезает часть слова, если его длина больше заданной величины подстроки $length. Рассмотрим возможные варианты решения этой проблемы. Первый метод В результирующую подстроку попадут все слова, имеющие длину не менее заданной (3 символа в нашем случае) PHP function
function _substr($str, $length, $minword = 3) { $sub = ''; $len = 0; foreach (explode(' ', $str) as $word) { $part = (($sub != '') ? ' ' : '') . $word; $sub .= $part; $len += strlen($part); if (strlen($word) > $minword && strlen($sub) >= $length) { break; } } return $sub . (($len < strlen($str)) ? '...' : ''); } "..." будет добавлено к подстроке, если ее длина получится меньше заданной. Следующий код выполняет ту же работу, что и substr(), но он лишен проблемы с обрезкой части слова: Пример:
echo _substr('Hello World I live in Kiev',12); // Выведет "Hello World I live..." Второй метод Эта функция задает количество слов, которые будут выделены их строки (с начала строки, разумеется) PHP function
function text_limit($str,$limit=10) { $str_s = ''; if(stripos($str," ")){ $ex_str = explode(" ",$str); if(count($ex_str)>$limit){ for($i=0;$i<$limit;$i++){ $str_s.=$ex_str[$i]." "; } return $str_s; }else{ return $str; } }else{ return $str; } } Принцип работы: - Задаем количество слов, которые необходимо выделить из строки; Пример:
echo text_limit('Hello World I live in Kiev',4); // Выведет "Hello World I live " Ссылки по теме |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
О нас |
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.
На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям. Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе. В нашем магазине вы можете приобрести лицензионное ПО выбрав необходимое из широкого спектра и ассортимента по самым доступным ценам. Наши менеджеры любезно помогут определиться с выбором ПО, которое необходимо именно вам. Также мы проводим учебные курсы. Мы приглашаем к сотрудничеству учебные центры, организаторов семинаров и бизнес-тренингов, преподавателей. Сфера сотрудничества - продвижение бизнес-тренингов и курсов обучения по информационным технологиям.
|
119334, г. Москва, ул. Бардина, д. 4, корп. 3 +7 (495) 229-0436 shopadmin@itshop.ru |
|
© ООО "Interface Ltd." Продаем программное обеспечение с 1990 года |