вторник, 15 января 2008 г.

ккопирование строки на php в кодировке utf-8

Озадачился я как то на php вырезанием части строки из русского текста в кодировке utf-8, но так чтобы слова не обрезались. Просто так это сделать не получиться: русские буквы занимают два символа, а остальные по одному. Идея проста - найти первый разделитель слов, а такими разделителями являются пробелы, точки, запятые, переносы строк. В результате вызов функции выглядит сейчас следующим образом:
$Text = CutStr($Text, ” ,.;\n\r”,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) );
}

Здесь можно оставить свои комментарии. Выпуск опубликован при помощи плагина subscribe.ru and blogspot.com cross poster

Комментариев нет: