пирование строки на php в кодировке utf-8
15.01.2008
Озадачился я как то на php вырезанием части строки из русского текста в кодировке utf-8, но так чтобы слова не обрезались. Просто так это сделать не получиться: русские буквы занимают два
символа, а остальные по одному. Идея проста - найти первый разделитель слов, а такими разделителями являются пробелы, точки, запятые, переносы строк. В результате вызов функции выглядит сейчас
следующим образом:
$Text = CutStr($Text, " ,.;nr",140);
а вот сам отлаженный исходник этой функции, написанный мной лично:
function CutStr($S, $Chars, $FromPos = 0) {
if (strlen($S) <= $FromPos) return $S;
$p = 0;
for ($i = 0; $i < strlen($Chars); $i++) {
$pos = strpos($S, $Chars[$i], $FromPos);
if (is_int($pos)) {
$p = $i == 0 ? $pos : min($p, $pos);
}
}
return substr($S, 0, max($p, $FromPos) );
}
Мой блог находят по следующим фразам
• Listview
• СКАЧАТЬ БЕСПЛАТНО ПРОГРАММУ МАКРОС
• импорт базы в phpMyAdmin
• синонимайзер бесплатно
• t.sonic 610 прошивка
• плагин рейтингов постов для wordpress
Один комментарий на запись “пирование строки на php в кодировке utf-8”
Пингбеки
- Socialize Me плагин wordpress для буржуйских социальных сетей | Программы для блогов
- xml rpc в delphi | Программы для блогов
- добавлена папка “Исходящие” в коммент клиенте | Программы для блогов
- Тестирование блоголёта на реальном зеркале blogclient.ru | Программы для блогов
Оставить комментарий
для юникода лучше пользоватья mb_() функциями, например mb_strlen();
$Chars[$i] - так же не желательно использовать, так как второй байт utf-8 символа может быть равным коду разделителя