[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Функция str_word_count: как работать в UTF-8?
baston
Собственно, есть стандартная функция str_word_count, подсчитывающая кол-во слов в строке.
Мне нужна как раз такая возможность. Использую следующий код:
$str = 'Проект, задуманный как «дом для отдыха в естественной обстановке», 
представляет небольшой двухэтажный прямоугольник (5,85х7 м) со скатной
кровлей, позволяющий в полной мере насладиться окружающим видом на горы.
В общем-то простой и небольшой дом получился довольно гармоничным,
заметным и современным.';
$wc = str_word_count($str);
echo "Всего слов: $wc.";</span>

Естественно, результат при кодировке UTF-8 некорректный: выдает 69 символов.

Вопрос: как же можно воспользоваться этой функцией в UTF-8 и, если нельзя, то как можно иначе вытащить кол-во слов в строке с этой кодировкой?
Спасибо.



Спустя 19 минут, 55 секунд (24.02.2010 - 12:52) baston написал(а):
Технически, можно тупо разбить строку на массивы и получить искомое независимо от кодировки:
$arrwc = explode(" ", $str);
$wc = array_values($arrwc);
echo count($wc);

Но вот насколько это корректно?

Спустя 25 минут, 46 секунд (24.02.2010 - 13:18) pas написал(а):
http://php.net/manual/en/function.str-word-count.php

Тут прямо в коментах можно найти функции подсчёта слов для кодировки UTF-8

Спустя 1 минута, 34 секунды (24.02.2010 - 13:20) baston написал(а):
Да, я читал эти комменты...
Все как-то усложнено.

Спустя 14 минут, 12 секунд (24.02.2010 - 13:34) pas написал(а):
В принципе да, на мой взгляд тогда Ваш способ будет правильным. Правда я бы его чуть укоротил:

$wc = count(explode(' ',$str));

Спустя 36 минут, 41 секунда (24.02.2010 - 14:11) baston написал(а):
Спасибо.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.