Заказать бесплатную консультацию
- Создание и продвижение сайтов
- Разработка Landing Page
- Контекстная реклама в Яндекс и Google
- 10 лет опыта
- 150+ выполненных проектов
- 10 лет гарантия
ул. Б.Хмельницкого 42, офис 404
+7 (924) 841 09 12
Добрый день!
В данной статье хочу поделиться своей функцией для обрезки строк, которая не только уберет некоторые проблемы в функции substr() в кодировке utf-8, но и будет иметь несколько плюсов.
Скачать функцию для обрезки строк на php (926,00b)
function mySubstr($text,$char1,$char2) { $text = strip_tags($text); // Удаляем теги $text = mb_convert_encoding($text, "windows-1251", "UTF-8"); // Меняем кодировку на windows-1251 $countChars = strlen($text); // Считаем сколько символов в целой строке if($char2 == '-') {$text = substr($text,$char1);} // варинат функции substr с двумя параметрами else{$text = substr($text,$char1,$char2);}// варинат функции substr с тремя параметрами $text = mb_convert_encoding($text, "UTF-8", "windows-1251");// Меняем кодировку обратно на UTF-8 $word = explode(' ',$text); // разбиваем текст на слова и помещаем в массив $countWords = count($word) - 1; // считаем сколько слов у нас есть if($char1 < $countChars and $char1 != '0') // Если строка обрезалась с начала текста { $start= '...'; // Троеточие в начале $startWord = 1; } else {$startWord = 0;} if($char2 < $countChars and $char2 != '-') { $finish= '...';// Троеточие в конце $finishWord = $countWords - 1; } else {$finishWord = $countWords;} // StartWord указывает с какого слова нужно начинать текст (если строка резалась, то со второго, если нет, то с первого) // finishWord указывает с какого слова нужно закончить текст (если строка резалась, то с предпоследнего, если нет, то с последнего) for($startWord;$startWord <= $finishWord; $startWord++) // Перебираем массив со словами,и создаем строку { $obr_text .= $word[$startWord].' '; } $text = trim($obr_text); // Удаляем пробелы в конце и в начале строки return $start.$text.$finish; // ...... }
Результат работы функции можно поместить либо в переменную, либо вывести с помощью ECHO.
echo mySubstr("abcdef", 1, '-'); echo '<p>'; // возвращает "bcdef" echo mySubstr("abcdef", 1, 3); // возвращает "bcd" echo '<p>'; echo mySubstr("abcdef", 0, 4); // возвращает "abcd" echo '<p>'; echo mySubstr("abcdef", 0, 8); // возвращает "abcdef" echo '<p>'; echo mySubstr("abcdef", -1, '-'); // возвращает "f" echo '<p>'; echo mySubstr("abcdef", -2, '-'); // возвращает "ef" echo '<p>'; echo mySubstr("abcdef", -3, 1); // возвращает "d" echo '<p>'; echo mySubstr("abcdef", 0, -1); // возвращает "abcde" echo '<p>'; echo mySubstr("abcdef", 2, -1); // возвращает "cde" echo '<p>'; echo mySubstr("abcdef", 4, -4); // возвращает "" echo '<p>'; echo mySubstr("abcdef", -3, -1); // возвращает "de"
Метки: mysubstr(), substr(), php, функция, проблемы, utf-8,
Да, действительно теперь я не один. В моей команде работают несколько программистов, дизайнер и отличный SMM специалист.
Так что теперь мы оказываем абсолютно весь спектр услуг, связанный с организацией бизнеса в интернете. Начиная от создания сайта и заканчивая продвижением его в интернете.